【发布时间】:2011-03-24 14:19:33
【问题描述】:
可以进行 md5 哈希处理的字符串的最大长度是多少?或者:如果没有限制,那么md5输出值的最大长度是多少?
【问题讨论】:
标签: md5 hash-function
可以进行 md5 哈希处理的字符串的最大长度是多少?或者:如果没有限制,那么md5输出值的最大长度是多少?
【问题讨论】:
标签: md5 hash-function
MD5 输入的最大长度:最大可定义和可用的比特流 位定义约束流可能取决于操作系统、硬件约束、编程语言等...
MD5 输出的长度:固定长度始终为 128 位 为方便显示,通常以十六进制显示,因为每个十六进制数字(0-1-2-3-4-5-6-7-8-9-ABCDEF)占用4位空间,所以其输出可以显示为 32 个十六进制数字。 128 位 = 16 字节 = 32 个十六进制数字
【讨论】:
md5 算法将消息长度附加到最后一个块的最后 64 位,因此可以公平地说消息可以是 2^64 位长(18 个 e18 位)。
【讨论】:
该算法旨在支持任意输入长度。即您可以计算大文件的哈希值,例如 DVD 的 ISO...
如果输入有限制,它可能来自使用散列函数的环境。假设您要计算一个文件并且环境有一个 MAX_FILE 限制。
但输出字符串将始终相同:32 个十六进制字符(128 位)!
【讨论】:
您可能希望使用SHA-1 而不是MD5,因为 MD5 被认为是损坏的。
您可以在this Wikipedia article 中阅读有关 MD5 漏洞的更多信息。
【讨论】:
【讨论】:
MD5("how many characters exactly?");
据我所知,md5的输入没有限制。一些实现要求将整个输入加载到内存中,然后再将其传递给 md5 函数(即,实现作用于内存块,而不是流),但这不是算法本身的限制。输出始终为 128 位。请注意,md5 不是加密算法,而是加密哈希。这意味着您可以使用它来验证数据块的完整性,但不能反转散列。 另请注意,md5 被视为已损坏,因此您不应将其用于任何与安全相关的事情(验证下载文件的完整性等仍然可以)。
【讨论】:
您可以有任何长度,但当然,如果字符串输入太长,计算机上可能会出现内存问题。输出始终为 32 个字符。
【讨论】:
block 字节的输入可用。
128 位 MD5 哈希表示为 32 个十六进制数字的序列。
【讨论】:
MD5 将任意长度的消息处理成 128 位的固定长度输出,通常表示为 32 个十六进制数字的序列。
【讨论】:
128 bits=16 bytes=32 hex digits