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

时间:2015-08-05 02:10:20

标签: hash encoding character-encoding hex ascii

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

1 个答案:

答案 0 :(得分:1)

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

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