Hash 如何在ANSI中将160位SHA-1字符串表示为20个字符?

Hash 如何在ANSI中将160位SHA-1字符串表示为20个字符?,hash,encoding,character-encoding,hex,ascii,Hash,Encoding,Character Encoding,Hex,Ascii,对于输入“hello”,SHA-1返回“AAF4C61DDCC5E8A2DABEDE0F3B482CD9EA9434D”,这是40个十六进制输出。我知道1个字节可以表示为1个字符,因此160位的输出应该能够转换为20个字符。但当我在ASCII表中查找“aa”时,并没有这样的十六进制值,对此我感到困惑。如何在ANSI中将160位SHA-1字符串映射为20个字符?ASCII只有128个字符(7位),而ANSI有256个字符(8位)。至于十六进制值AA(十进制170)的ANSI值,相应的ANSI字符将

对于输入“hello”,SHA-1返回“AAF4C61DDCC5E8A2DABEDE0F3B482CD9EA9434D”,这是40个十六进制输出。我知道1个字节可以表示为1个字符,因此160位的输出应该能够转换为20个字符。但当我在ASCII表中查找“aa”时,并没有这样的十六进制值,对此我感到困惑。如何在ANSI中将160位SHA-1字符串映射为20个字符?

ASCII只有128个字符(7位),而ANSI有256个字符(8位)。至于十六进制值
AA
(十进制170)的ANSI值,相应的ANSI字符将是
ª
(参见示例)

现在,您必须记住,许多ASCII和ANSI字符(0-31)都是不可打印的控制字符(系统铃、空字符等),因此在大多数情况下,将哈希转换为可读的20个字符的字符串是不可能的。例如,您的示例包含十六进制值
0F
,它将转换为字符