md5散列的字符串的最大长度是多少?或者:如果没有限制,如果是,那么md5输出值的最大长度是多少?
答案 0 :(得分:210)
MD5将任意长度的消息处理为128位的固定长度输出,通常表示为32位十六进制数字的序列。
答案 1 :(得分:35)
追加长度
b的64位表示(消息之前的消息长度) 填充位被添加)附加到前一个的结果 步。在不太可能的情况下,b大于2 ^ 64,那么只有 使用b的低位64位。
查看更多here。
答案 2 :(得分:9)
您可以拥有任何长度,但当然,如果String输入太长,计算机上可能会出现内存问题。输出始终为32个字符。
答案 3 :(得分:6)
该算法旨在支持任意输入长度。即,你可以计算大型文件的哈希值,比如DVD的ISO ......
如果输入存在限制,则可能来自使用哈希函数的环境。假设您要计算文件,并且环境具有MAX_FILE限制。
但输出字符串将始终相同:32个十六进制字符(128位)!
答案 4 :(得分:4)
128位MD5哈希表示为32个十六进制数字的序列。
答案 5 :(得分:3)
我知道md5的输入没有限制。一些实现要求在将整个输入传递到md5函数之前将其加载到存储器中(即,实现作用于存储器块而不是流上),但这不是算法本身的限制。输出始终为128位。请注意,md5不是加密算法,而是加密哈希。这意味着您可以使用它来验证大量数据的完整性,但是您无法反转散列。 另请注意,md5被认为已损坏,因此您不应将其用于任何与安全相关的内容(验证下载文件的完整性仍然可以。)
答案 6 :(得分:3)
您可能希望使用SHA-1代替MD5,因为MD5被视为已损坏。
您可以在this Wikipedia article中了解有关MD5漏洞的更多信息。
答案 7 :(得分:1)
md5 算法将消息长度附加到最后一个块的最后 64 位,因此可以公平地说消息可以是 2^64 位长(18 e18 位)。
答案 8 :(得分:0)
MD5 输入的最大长度:最大可定义和可用的比特流 位定义约束流可能取决于操作系统、硬件约束、编程语言等...
MD5 输出的长度:固定长度总是 128 位 为了便于显示,它们通常以十六进制显示,因为每个十六进制数字 (0-1-2-3-4-5-6-7-8-9-ABCDEF) 占用 4 位空间,因此其输出可以显示为 32 位十六进制数字。 128 位 = 16 字节 = 32 个十六进制数字