如何在 ANSI 中将 160 位 SHA-1 字符串表示为 20 个字符?
How to denote 160 bits SHA-1 string as 20 characters in ANSI?
对于输入 "hello",SHA-1 returns "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",这是 40 个十六进制输出。我知道 1 个字节可以表示为 1 个字符,所以 160 位输出应该能够转换为 20 个字符。但是当我在 ASCII table 中查找 "aa" 时,没有这样的十六进制值,我对此感到困惑。如何将 160 位 SHA-1 字符串映射为 ANSI 中的 20 个字符?
ASCII 只有 128 个字符(7 位),而 ANSI 有 256 个(8 位)。至于十六进制值 AA
(十进制 170)的 ANSI 值,对应的 ANSI 字符将是 ª
(例如参见 [=13=])。
现在,您必须记住,许多 ASCII 和 ANSI 字符 (0-31) 都是不可打印的控制字符(系统铃、空字符等),因此请将您的散列转换为可读的 20 个字符的字符串在大多数情况下是不可能的。例如,您的示例包含十六进制值 0F
,它将转换为 shift-in 字符。
对于输入 "hello",SHA-1 returns "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",这是 40 个十六进制输出。我知道 1 个字节可以表示为 1 个字符,所以 160 位输出应该能够转换为 20 个字符。但是当我在 ASCII table 中查找 "aa" 时,没有这样的十六进制值,我对此感到困惑。如何将 160 位 SHA-1 字符串映射为 ANSI 中的 20 个字符?
ASCII 只有 128 个字符(7 位),而 ANSI 有 256 个(8 位)。至于十六进制值 AA
(十进制 170)的 ANSI 值,对应的 ANSI 字符将是 ª
(例如参见 [=13=])。
现在,您必须记住,许多 ASCII 和 ANSI 字符 (0-31) 都是不可打印的控制字符(系统铃、空字符等),因此请将您的散列转换为可读的 20 个字符的字符串在大多数情况下是不可能的。例如,您的示例包含十六进制值 0F
,它将转换为 shift-in 字符。