首页 文章

MD5输入/输出的最大长度

提问于
浏览
139

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

7 回答

  • 3

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

  • 6

    该算法旨在支持任意输入长度 . 即,您可以计算像DVD的ISO等大文件的哈希值...

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

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

  • 9

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

  • 195

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

  • 5

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

    • 哈希总是128位 . 如果将其编码为十六进制字符串,则可以为每个字符编码4位,从而得到32个字符 .

    • MD5未加密 . 你不能一般"decrypt"一个MD5哈希来获取原始字符串 .

    查看更多here .

  • 3

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

    您可以在this Wikipedia article中阅读有关MD5漏洞的更多信息 .

  • 34

    我知道md5的输入没有限制 . 一些实现要求在将整个输入传递到md5函数之前将其加载到存储器中(即,实现作用于存储块而不是流上),但这不是算法本身的限制 . 输出始终为128位 . 请注意,md5不是加密算法,而是加密哈希 . 这意味着您可以使用它来验证大量数据的完整性,但是您无法反转散列 . 另请注意,md5被认为已损坏,因此您不应将其用于与安全相关的任何事情(验证下载文件的完整性等仍然可以) .

相关问题