字符串的SHA1是否始终返回ASCII字符?

时间:2011-06-30 02:52:11

标签: sha1

输入字符串可以是unicode字符串。计算SHA1后的输出字符串是否总是返回ASCII字符?

3 个答案:

答案 0 :(得分:7)

这取决于但严格来说,不是。 SHA-1散列的输出是160位或20个字节,但不保证字节在ASCII范围内。

但是,一些散列函数输出20个字节的十六进制等效值(即40个字符),因此如果实际散列的前三个字节是0x7e,0x03和0xb2,则输出将以“7e03b2”开头,在哪种情况下,输出 ASCII。

答案 1 :(得分:3)

sha1返回二进制字符串。为方便起见,一些sha1函数也可以将二进制字符串编码为十六进制或base64 - 如果是这样,结果将是ASCII字符。但是sha1本身不会返回ASCII。

答案 2 :(得分:2)

SHA1返回20个字节。 SHA1不处理编码,文本,ASCII等。

表示二进制数据的一种常用方法是将其编码为十六进制 - 在这种情况下,输出始终为[a-f] [0-9]