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

分类: 计算机技术
推荐阅读:
golint是什么 Golint是一个Go语言源代码检测工具;Golint 用于检测诸如命令、注释、语法等代码是否规范。
Go语言使用闭包实现斐波那契数列 要使用Go语言实现一个闭包来计算斐波那契数列,你可以定义一个函数,该函数返回一个闭包,闭包可以迭代地生成斐波那契数列的下一个数字。
Visual Studio Code 配置Python开发环境 首先,请确保你的电脑已经安装了Python,如没有请先安装,建议 3.5.0以上版本;其次,确保你的电脑已经安装了 Visual Studio Code 这个代码编辑器;
Python计算圆周率,精确到n位 本文将使用Python计算圆周率,可精确到n位,n值越大精度越高。
关闭Shell时保持子进程继续运行 在Linux系统里,当你关闭 shell 或者终端时,没有经过 nohup 或 setid 等命令后台执行的程序也会随着 shell 的关闭而结束;如果你已经提交了命令,也没有使用 nohup 或 setid 进行处理,你可以用这一条命令实现退出shell或终端而保持进程不被关闭:
Windows和Linux系统启用IP转发 在Windows系统下启用IP转发,需要通过修改注册表来实现;Linux系统只需将系统下的/proc/sys/net/ipv4/ip_forward文件值修改为1;