Coldfusion哈希SHA1与样本看起来不一样

时间:2013-07-11 07:20:05

标签: hash coldfusion fingerprint

我正在编写一个脚本来散列“指纹”,以便与安全的Pay Direct Post API进行通信。

我遇到的问题是我试图创建一个与提供的示例代码相匹配的SHA-1字符串,这样我就可以确保准确地发布内容。

示例Sha-1字符串显示为

编码
01a1edbb159aa01b99740508d79620251c2f871d

但转换时我的字符串显示为

7871D5C9A366339DA848FC64CB32F6A9AD8FCADD

完全不同......

我的代码如下..

<cfset variables.finger_print = "ABC0010|txnpassword|0|Test Reference|1.00|20110616221931">
<cfset variables.finger_print = hash(variables.finger_print,'SHA-1')>
<cfoutput>
#variables.finger_print#
</cfoutput>

我使用Coldfusion 8来做到这一点

它生成一个40个字符的哈希值,但我可以看到它生成完全不同的字符串。

希望之前有人这样做过,并且可以指出我正确的方向......

提前致谢

**编辑

创建哈希的文章仅包含以下信息。

示例:设置指纹与|连接的字段分隔符:

ABC0010 | txnpassword | 0 |测试参考| 1.00 | 20110616221931

SHA1上面的字符串:01a1edbb159aa01b99740508d79620251c2f871d

使用coldfusion hash生成上面的示例字符串时,会将其转换为此

7871D5C9A366339DA848FC64CB32F6A9AD8FCADD

1 个答案:

答案 0 :(得分:2)

  

01a1edbb159aa01b99740508d79620251c2f871d

很抱歉,但是我没有看到示例字符串如何产生该结果,因为php,CF和java都说不然。我怀疑文档中有错误。突出的一点是使用&#34; txnpassword&#34;而不是像其他字段一样的样本值。也许他们使用不同的值来生成字符串并忘记将其插入实际示例中?

<强>更新

第27页的示例5.2.1.12更有意义。忽略大小写,ColdFusion的结果完全匹配。我注意到描述中还提到了summarycode值的某些内容,而3.3.6节中的示例中没有这个值。所以这倾向于支持前面例子中的文档错误理论。

<强>代码:

 <cfset input = "ABC0010|mytxnpasswd|MyReference|1000|201105231545|1">
 <cfoutput>#hash(input, "sha-1")#</cfoutput>

<强>结果:

 3F97240C9607E86F87C405AF340608828D331E10
相关问题