我希望字符串为sha1编码,然后为十六进制,长度为40个字符。这是一个Java Web服务,客户端将使用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必须做什么类型的编码来获得这个哈希?
谢谢。
答案 0 :(得分:0)
NFE手册错了。示例String在字符串末尾有一个空格..
出现在哪里 5176383d& cIdToken = 000001105855042013000真的 5176383d& cIdToken = 000001105855042013000
使用sha1解决此问题的常规功能;)
在mysql中你可以做到: SHA1(yourExampleString)... 在PHP中可以有类似的东西......