为什么MD5说是128位,却只有32个字符?
为什么MD5说是128位,却只有32个字符?这是因为这两个长度的概念不同;
通常MD5(不止MD5,其它例如sha1、sha256)等hash值通常都是以十六进制表示的,而其内部算法使用的是二进制;
以MD5值为例:
e10adc3949ba59abbe56e057f20f883e
用十六进制表示时,使用了32个16进制数;而一个16进制数用二进制表示时,需要占用4位;
转换成二进制就是:
11100001000010101101110000111001010010011011101001011001101010111011111001010110111000000101011111110010000011111000100000111110
占用128位;
一个表示的是二进制的位数,而另一个表示的是十六进制的位数;