如何从ColdFusion 9中的哈希函数中获取原始二进制文件?

如何从ColdFusion 9中的哈希函数中获取原始二进制文件?,coldfusion,coldfusion-9,sha,Coldfusion,Coldfusion 9,Sha,在ColdFusion 9中,我对一个字符串进行散列,如下所示:散列(“bob”,“SHA1”),我需要它返回二进制而不是十六进制字符串 这是你想要的那种东西吗 <cfscript> s = "G'day World"; hash1 = hash(s, "SHA-1"); bin = binaryDecode(hash1, "hex"); hash2 = binaryEncode(bin, "hex"); writeDump(variables); </cfscript>

在ColdFusion 9中,我对一个字符串进行散列,如下所示:
散列(“bob”,“SHA1”)
,我需要它返回二进制而不是十六进制字符串

这是你想要的那种东西吗

<cfscript>
s = "G'day World";
hash1 = hash(s, "SHA-1");
bin = binaryDecode(hash1, "hex");
hash2 = binaryEncode(bin, "hex");

writeDump(variables);
</cfscript>

s=“G’day World”;
hash1=hash(s,“SHA-1”);
bin=二进制解码(hash1,“十六进制”);
hash2=二进制编码(bin,“hex”);
writeDump(变量);

文件:


因为您知道哈希字符串是十六进制的,所以只需使用适当命名的函数对其进行解码即可

hashedString = hash("bob", "SHA1");
binaryData = binaryDecode(hashedString , "Hex");

亚当-不确定一旦帖子被删除,是否会发送通知,但我在马特(现在已删除)的答案下面贴了一条解释。简言之,问题不仅仅在于使用
toBase64/toBinary()
更复杂,它还会返回错误的结果。所以前两个答案是不正确的。这就是为什么我将我先前的评论提升为答案;-)