MD5输入/输出的最大长度

时间:2010-08-03 07:43:51

标签: md5 hash-function

md5散列的字符串的最大长度是多少?或者:如果没有限制,如果是,那么md5输出值的最大长度是多少?

9 个答案:

答案 0 :(得分:210)

MD5将任意长度的消息处理为128位的固定长度输出,通常表示为32位十六进制数字的序列。

答案 1 :(得分:35)

  

追加长度

     

b的64位表示(消息之前的消息长度)      填充位被添加)附加到前一个的结果      步。在不太可能的情况下,b大于2 ^ 64,那么只有      使用b的低位64位。

  • 哈希值始终为128位。如果将其编码为十六进制字符串,则可以为每个字符编码4位,给出32个字符。
  • MD5不是加密。您通常不能“解密”MD5哈希以获取原始字符串。

查看更多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 个十六进制数字