0

我想要一个字符串到 sha1 编码,然后到十六进制,长度为 40 个字符。这是一个 Java 网络服务,客户端是用 PHP 完成的。

原始代码是 Java(我没有源代码,只有文档),它对以下字符串进行哈希处理:

chNFe=43120910585504000174650010000000541123456781&nVersao=100&tpAmb=2& dhEmi=323031322d30392d32375431363a32303a33342d30333a3030&vNF=1000.00&vICMS=180.00&digVal=37327151612b623074616f514f3966414a7766646c5875715176383d&cIdToken=0000011058550420130001

到以下十六进制:3FACB55248244D98C658FC8A826413BCEF10A4AE

上面的示例来自 webservice 文档,它说字符串是用 sha1 编码的,然后结果被编码为十六进制。

我尝试了 sha1 然后 dechex 和许多其他方法,但不能得到相同的结果。有没有人知道 PHP 必须做什么类型的编码才能得到这个哈希?

谢谢你。

4

1 回答 1

0

NFE 手册是错误的。示例字符串在字符串末尾有一个空格..

哪里出现 5176383d&cIdToken=000001105855042013000 真的是 5176383d &cIdToken=000001105855042013000

使用 sha1 的 cript 的常规功能解决了问题;)

在 mysql 中你可以这样做:sha1(yourExampleString)... 在 php 中可能有类似...

于 2014-02-10T16:24:34.340 回答