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

bha*_*anu 8 sha1

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

Gra*_*row 7

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

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


Yan*_*min 5

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

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


bdo*_*lan 4

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