SHA1 hmac PHP与Javascript-不同的结果?
你好 我正在使用javascript中的类散列字符串: 结果是: 5db0194c834d419fc5d68b72c88af1ac8ee749d6 在PHP中,我使用哈希:SHA1 hmac PHP与Javascript-不同的结果?,php,javascript,sha1,Php,Javascript,Sha1,你好 我正在使用javascript中的类散列字符串: 结果是: 5db0194c834d419fc5d68b72c88af1ac8ee749d6 在PHP中,我使用哈希: echo hash_hmac('sha1', "asdasdasdasdś", '927545161'); 但结果是: 0b115775a20bed9922b6a9cc934cb5328fe71ade 错误在哪里? 5db0194c834d419fc5d68b72c88af1ac8ee749d6!=0b115775a20
echo hash_hmac('sha1', "asdasdasdasdś", '927545161');
但结果是:
0b115775a20bed9922b6a9cc934cb5328fe71ade
错误在哪里?
5db0194c834d419fc5d68b72c88af1ac8ee749d6!=0b115775a20bed9922b6a9cc934cb5328fe71adePHP将UTF-8字符串解释为8位字符序列。而在Javascript中,每个字符都可以解析为Unicode代码点
压缩且完全不可读的Javascript实现使用.charCodeAt将字符串转换为hexstring。我没有费心去彻底研究它,但很可能ś.charCodeAt0只是解析为347,其余的转换期望值在8位范围0到255之间。PHP将UTF-8字符串解释为8位字符序列。而在Javascript中,每个字符都可以解析为Unicode代码点
压缩且完全不可读的Javascript实现使用.charCodeAt将字符串转换为hexstring。我没有费心去彻底研究它,但很可能ś.charCodeAt0只是解析为347,其余的转换期望值在8位范围0到255之间。我也猜这与文件编码/unicode问题有关。我在php和JS页面中使用UTF-8。UTF-8字符的问题是:
echo hash_hmac('sha1', "asdasdasdasdś", '927545161');