Wt *_*est 4 javascript php sha1
我有一个字符串,其中包含一些utf-8字符,如"abc艾",并发现php5 sha1生成与Javascript sha1相比不同的代码,任何人都可以帮我解决这个问题吗?提前致谢.
phpcode:
$str = "abc?";
$result = sha1($str);
Run Code Online (Sandbox Code Playgroud)
结果是 5345129746e444693aa1111c5840e4b57236f002
javascript代码:
var str = "abc?"
var result = sha1(str)
Run Code Online (Sandbox Code Playgroud)
结果是 8a2aa0fed185dcffb922b1c4d67a49105525bd6a
从PHP获得的结果对于编码为GB18030(61 62 63 B0 AC)的字符串是正确的
你从CryptoJS获得的那个对于编码为UTF-8(61 62 63 E8 89 BE)的字符串是正确的.
这里没有冲突.您的PHP源文件使用不正确的字符串编码保存,因此您获得的结果不具代表性.
请阅读每个程序员绝对正确需要了解的编码和字符集以处理文本.简而言之,您所处理的"艾"是Unicode字符,而不是"UTF-8字符".有多种方式可以由不同的系统表示,并且这些不同的表示具有不同的SHA1和.
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |