【发布时间】:2016-09-22 09:55:57
【问题描述】:
我在比较不同语言/函数生成的 SHA256 哈希时遇到了问题。
例如,SHA256("í") 要么返回:
f3df1f9c358ae8eceb8fce7c00614288d113ad55315f4ebb909774a7daadfc84
-或-
127035a8ff26256ea0541b5add6dcc3ecdaeea603e606f84e0fd63492fbab2c5
上面哪个哈希值对于一个字符的字符串是正确的,处理 UTF-8 字符串的正确方法是什么?
【问题讨论】:
-
没有“UTF-8 字符”这样的东西。有 Unicode 字符,如果您愿意,可以将它们编码为 UTF-8。您根本没有告诉我们您对哪种语言感兴趣,但基本上该过程是使用您选择的编码(例如 UTF-8)将字符串编码为二进制数据,获取 SHA-256 哈希,然后然后使用 hex 或 base64 将该哈希转换回字符串。
标签: hash utf-8 character-encoding sha