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

分类: 计算机技术
推荐阅读:
一定有你不知道的Python技巧 Python一直以代码简洁著称;想写出艺术般的代码,需要你掌握各种Python技巧,这些技巧有些是语言特性,有些则是广大程序员的经验心得;今天作者就给大家网罗了一些Python技巧,一起来看看吧。
MIPS指令的类型和格式 MIPS指令集包含三种基本类型的指令:R指令、I指令和J指令。不同类型的指令采用不同的指令格式。
Python实现链表 链表是一系列数据元素,它们通过指针连接在一起。每个数据元素都包含指向指针形式的另一个数据元素的连接。Python在其标准库中没有链接列表;作者将使用的节点的概念来实现链表。
Python实现将二进制码转换为格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code);本文将使用Python实现将二进制码转换为格雷码;
使用PySide6创建Hello World程序 本文将展示PySide6的hello world程序;程序将创建一个主窗体,在窗体上创建一个按钮,点击按钮将弹出Hello world的消息;
Rust line宏的用法和示例 在Rust中,line宏用于获取代码中当前的行号;通过在代码中使用line宏,开发者可以轻松地在编译时获取到所在位置地行号信息,从而实现更灵活地代码逻辑和调试方案。