MD5输入/输出的最大长度

Aru*_*vid 155 md5 hash-function

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

Dan*_*llo 222

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

  • 自我注意:MD5哈希长度=`128位`=`16字节`=`32十六进制数字` (86认同)
  • [正常编辑] 32个十六进制数字,字符串仅包含来自'az'的单词和来自'0-9'的数字 (2认同)
  • @Shafizadeh作为答案陈述,输入具有任意长度.这意味着参数可以是您需要的任何长度. (2认同)

Mar*_*ers 37

追加长度

b的64位表示(添加填充位之前的消息长度)被附加到前一步骤的结果.在不太可能的情况下,b大于2 ^ 64,则仅使用b的低阶64位.

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

在这里查看更多.


Vid*_*nes 9

您可以拥有任何长度,但当然,如果String输入太长,计算机上可能会出现内存问题.输出始终为32个字符.

  • 如果字符串输入太长,它首先不会存在于系统中,除非它在文件中,在这种情况下,你可以在读取时将块传递给摘要函数,换句话说,你只需要一次可以输入`block`字节. (4认同)

Kam*_*ami 6

该算法旨在支持任意输入长度.也就是说你可以计算像DVD这样的大文件的哈希值......

如果输入存在限制,则可能来自使用散列函数的环境.假设您要计算文件,并且环境具有MAX_FILE限制.

但输出字符串将始终相同:32个十六进制字符(128位)!


Ham*_*ari 5

128位MD5散列表示为32个十六进制数字的序列.


小智 5

您可能希望使用SHA-1而不是MD5,因为 MD5 被认为已损坏。

您可以在这篇 Wikipedia 文章中阅读有关 MD5 漏洞的更多信息。

  • 它的创建者,以及布鲁斯·施奈尔和国土安全部都同意它已经被破解……你还需要多少“谣言传播”才能让你相信它实际上已经被破解了一段时间?事实是,很容易找到生成特定散列的输入。当然,您可以通过使用足够大的盐对输入进行加盐来降低这种风险。附带说明:SHA-1 被认为同样损坏。如果您建议人们升级,请建议他们升级到 SHA-2。 (13认同)
  • 您正在谈论 MD5 的安全用途。但是 MD5(或任何其他散列技术)还有很多其他用途。一方面,我想用它通过哈希重命名文件。我当然不关心 MD5 的抗碰撞性。您发布的所有内容仍然是真实的,只是我的 2 美分。 (4认同)
  • @kander 哦,我需要一点。一个例子。给定一个散列,你会带一个源字符串吗?不是一些很棒的文章的链接,不是某人的意见,而只是一个源字符串? (3认同)
  • 没有人真正提到他们在“破碎”一词下的真正含义。虽然,@YourCommonSense 是有道理的。 (2认同)
  • 哈希值不仅仅用于安全。 (2认同)
  • MD5 被认为已损坏/不安全,不应再用于数据库中的密码等关键内容。不过,它仍然可以用于文件校验和。 (2认同)
  • 那要看用途了。问题并没有说明散列的用途是什么。MD5 不被视为损坏。然而,它完全不适合密码等,因为它在任何现代意义上都不用作 CRYPTOGRAPHIC 哈希函数。然而,它比 SHA1 快得多,如果我们只关心例如查找不安全的缓存文件名或创建快速哈希查找(例如计数、校验和等),那么它是一个非常好的使用方法。但是,它的工作非常好这份工作与安全无关。– ntg 1 分钟前编辑 (2认同)