has*_*r90 77 hash md5 cryptography cryptographic-hash-function
我读了一些关于md5的文档,它说它的128位,但为什么它是32个字符?我无法计算角色.
编辑:
SHA-1产生160位,那么有多少个字符?
ba_*_*end 96
32个字符作为十六进制表示,即每字节2个字符.
小智 27
我想把一些答案总结成一篇文章.
首先,不要将MD5哈希视为字符串,而是将其视为十六进制数.因此,每个数字都是十六进制数字(0-15或0-F),表示四位,而不是八位.
更进一步,一个字节或八个比特由两个十六进制数字表示,例如b' 1111 1111'= 0xFF= 255.
MD5哈希长度为128位,通常由32个十六进制数字表示.
SHA-1哈希长度为160位,通常用40个十六进制数字表示.
对于SHA-2系列,我认为哈希长度可以是预先确定的集合之一.因此SHA-512可以用128个十六进制数字表示.
同样,这篇文章仅基于之前的答案.
Eva*_*oll 23
要明确比特与字节,vs字符.
2**8可能的组合:256种组合当你看一个十六进制字符,
[0-9] + [a-f]:全系列0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f2**4:这意味着一个十六进制字符可以在一个字节(半个字节)中存储4位.2**8组合.[0-9a-f][0-9a-f],它表示一个字节的两半(我们将半字节称为半字节).当你看一个普通的单字节字符时,(我们完全会在这里跳过多字节和宽字符)
2**8范围.md5()可以存储所有这些,你会看到所有小写字母,所有大写字母,所有标点符号和类似的东西¡°ÀÐàð,如(换行符和制表符)和控制字符(你可以'甚至看到,其中很多都没有使用).所以他们明显不同,我希望这能够最好地区分差异.
Wis*_*guy 19
MD5产生十六进制数字(0-15/0-F),因此它们各为4位.128/4 = 32个字符.
SHA-1也产生十六进制数字(0-15/0-F),因此160/4 = 40个字符.
(由于它们是数学运算,因此大多数散列函数的输出通常表示为十六进制数字.)
您可能正在考虑ASCII文本字符,即8位.
| 归档时间: |
|
| 查看次数: |
97113 次 |
| 最近记录: |