字符串的 SHA1 是否总是返回 ASCII 字符?
输入字符串可以是unicode字符串。计算SHA1后输出字符串总是返回ASCII字符吗?
The input string can be a unicode string.Do the output string after calculating SHA1 will always return ASCII characters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这要看情况,但严格来说,不是。 SHA-1 哈希的输出为 160 位,即 20 个字节,但不保证这些字节位于 ASCII 范围内。
然而,一些哈希函数输出 20 个字节的十六进制等效值(即 40 个字符),因此如果实际哈希的前三个字节是 0x7e、0x03 和 0xb2,则输出将以“7e03b2”开头,在这种情况下输出为 ASCII。
It depends but strictly speaking, no. The output of the SHA-1 hash is 160 bits, or 20 bytes, but the bytes are not guaranteed to be in the ASCII range.
However, some hash functions output the hex equivalent (i.e. 40 characters) of the 20 bytes, so if the first three bytes of the actual hash are 0x7e, 0x03, and 0xb2, the output would begin with "7e03b2", in which case the output is ASCII.
SHA1 返回 20 个字节。 SHA1 不处理编码、文本、ASCII 等。
表示二进制数据的一种常见方法是将其编码为十六进制 - 在这种情况下,输出始终为 [af][0-9]
SHA1 returns 20 bytes. SHA1 does not deal with encodings, text, ASCII, etc.
One common way to represent binary data is by encoding it in hexadecimal - in this case, the output is always [a-f][0-9]
sha1 返回一个二进制字符串。为了方便起见,某些 sha1 函数也可能将该二进制字符串编码为十六进制或 base64 - 如果是这样,结果将是 ASCII 字符。但 sha1 本身不返回 ASCII。
sha1 returns a binary string. Some sha1 functions may, as a convenience, also encode that binary string into hexadecimal or base64 - if so, the result will be ASCII characters. But sha1 itself does not return ASCII.