为什么MD5说是128位,却只有32个字符?


为什么MD5说是128位,却只有32个字符?这是因为这两个长度的概念不同;

通常MD5(不止MD5,其它例如sha1、sha256)等hash值通常都是以十六进制表示的,而其内部算法使用的是二进制;

以MD5值为例:

e10adc3949ba59abbe56e057f20f883e

用十六进制表示时,使用了32个16进制数;而一个16进制数用二进制表示时,需要占用4位;

转换成二进制就是:

11100001000010101101110000111001010010011011101001011001101010111011111001010110111000000101011111110010000011111000100000111110

占用128位;

一个表示的是二进制的位数,而另一个表示的是十六进制的位数;

如需转载,请注明出处;本文地址:https://www.perfcode.com/p/md5-length.html