为什么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

分类: 计算机技术
推荐阅读:
Linux结束正在锁定文件的进程 在Linux系统下,当你想删除或更改某个文件,却发现该文件正在被某个进程访问,处于锁定状态,导致你无法删除或更改;这时你只需要一条命令即可实现结束这个进程:
MySQL ABS() 绝对值函数 ABS(x) 函数返回x的绝对值,如果x为NULL则返回NULL;
MIPS指令的寻址方式和数据类型 MIPS指令支持多种寻址方式和数据类型,以满足不同的应用需求。
Golang中的布尔(bool)类型 go语言中的布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。
Rust程序获取命令行参数 本文将在Rust语言中使用标准库std::env中的args()函数获取命令行参数;标准库std::env中有一个args()函数,它将返回在命令行中传递的参数;
如何将Rust更新到最新版 Rust每隔一段时间就会有新的版本,若要将已安装的Rust更新到最新版,并不用先卸载旧的版本,只需要使用 rustup 工具;