Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试散列一些数据,其中包括土耳其语字符。例如; 当我"aaç"用 Polarssl 散列字符串时,sha-1结果是这样的:
"aaç"
sha-1
10 bf 94 7f 94 65 9f b0 66 76 97 b d4 25 de 9d e4 85 8e ca
但我从互联网上查看相同的字符串(aaç)哈希结果如下:
aaç
97 dd 7a 00 e8 ff 49 09 47 60 03 50 83 db 7c ba 87 07 0f d9
为什么这两个sha1结果会不同?
sha1
文本编码差异。字符ç在 ISO 8859-1 和 UTF-8 编码中的编码方式不同,这种差异导致生成的字节序列的 SHA-1 哈希值不同:
ç
SHA1("aa\xe7") = 10bf947f94659fb06676970bd425de9de4858eca (ISO 8859-1) SHA1("aa\xc3\xa7") = 97dd7a00e8ff49094760035083db7cba87070fd9 (UTF-8)