2011-06-11 120 views
58

我读了一些有关md5的文档,它说它的128位,但为什么它是32个字符?我无法计算字符。MD5是128位,但它为什么是32个字符?

  • 1字节为8位
  • 如果1个字符为1个字节
  • 然后128位是八分之一百二十八= 16字节正确?

编辑:

SHA-1产生160位,所以多少字符呢?

+0

你能发布一个链接到你参考的文档吗? – 2011-06-11 17:06:15

+0

@don:对不起,我的讲师笔记。但ba__friend已经回答了我的问题,我在这里测试它:http://www.miraclesalad.com/webtools/md5.php,它的真正的十六进制字符,现在对我来说更有意义。我会将他的答案作为最佳答案投票 – 2011-06-11 17:08:24

+0

我认为我的答案比其他答案更详细。 [如果你是计算机编程的新手,并且询问这个问题并希望得到答案](http://stackoverflow.com/a/41618070/124486) – 2017-01-12 16:19:57

回答

80

32个字符作为十六进制表示,即每字节2个字符。

+1

十六进制是从0 .. F? – 2011-06-11 17:05:03

+1

1个字节由两位十六进制数字表示,如255 = ff。 – 2011-06-11 17:09:27

+0

所以1字节是2个字符,这意味着16位是2个字符,然后128/16 = 8。所以需要2个字符中的8个= 16个字符?为什么是32? – 2014-07-13 09:23:10

6

这是32个十六进制字符 - 1个十六进制字符是4位。

0

那些是十六进制数字,而不是字符。一位数= 4位。

0

它们实际上不是字符,它们是十六进制数字。

15

MD5产生十六进制数字(0-15/0-F),所以它们是四位。 128/4 = 32个字符。

SHA-1也产生十六进制数字(0-15/0-F),所以160/4 = 40个字符。

(因为他们是数学运算,大多数散列函数输出通常表示为十六进制数字。)

你可能在想的ASCII文本字符,这是8位。

+0

非常感谢你..现在我脑中有更清晰的照片了! – 2011-06-11 17:22:18

+0

注意:ascii-charset包含不可打印的符号。 – Roylee 2016-09-13 16:13:35

+0

我试图打破这一点更明确http://stackoverflow.com/a/41618070/124486 – 2017-01-12 16:22:56

22

我想将一些答案汇总到一篇文章中。

首先,不要将MD5散列视为字符串,而应视为十六进制数字。因此,每个数字都是十六进制数字(0-15或0-F),代表四位而不是八位。进一步考虑,一个字节或八个位由两个十六进制数字表示,例如, b'1111 1111'= 0xFF = 255

MD5散列长度为128位,通常由32个十六进制数字表示。

SHA-1散列长度为160位,一般用40个十六进制数字表示。

对于SHA-2家族,我认为散列长度可以是预先确定的集合之一。所以SHA-512可以用128个十六进制数字表示。

再一次,这篇文章只是基于以前的答案。

10

十六进制“字符”(半字节)是从“字符”

要论位VS字节清楚,VS字符不同。

  • 1字节为8位(我们的目的)
  • 8位提供2**8可能的组合:256个组合

当你看一个十六进制字符,

  • [0-9] + [a-f]的16种组合:全系列0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
  • 16小于256,所以一个一个十六进制字符不是存储一个字节。
  • 16是2**4:这意味着一个十六进制字符可以在一个字节(半个字节)中存储4位。
  • 因此,两个十六进制字符,可以存储8位,2**8组合。
  • 表示为十六进制字符的字节是[0-9a-f][0-9a-f],它表示一个字节的两半(我们称之为半字节nibble)。其顺序实际上取决于规格或平台:0F可以代表0000111111110000

当你看一个常规字符,

  • 它可以存储远远超过16种组合。
  • 字符的能力由编码确定。例如,ISO 8859-1 that stores an entire byte, stores all this stuff
  • 所有这些东西都需要整个2**8范围。
  • 如果md5()中的十六进制字符可以存储所有这些内容,则会看到所有小写字母,所有大写字母,所有标点符号和诸如¡°ÀÐàð之类的东西,空格(新行和制表符)以及控制字符(你甚至不能看到,其中许多没有被使用)。

所以他们明显不同,我希望能提供最好的分歧。

相关问题