math - md5对短字符串(有限数量的字符串)是否有任何唯一性保证?

标签 math encryption hash computer-science uniqueidentifier

因此,我知道有证据表明MD5不能保证唯一性,因为Universe中的字符串多于MD5哈希字符串,但是对于有限数量的字符串是否有任何逆证明?
基本上,如果我具有最大长度为X的字符串,那么是否存在可以保证MD5唯一的X?如果是,那X是什么?如果X的值不止一个,那么X的最大值是多少?
或其他哈希算法,SHA-1等是否有这样的X?

最佳答案

在此处总结出色的答案:What's the shortest pair of strings that causes an MD5 collision?

对MD5的最短已知攻击需要2个输入块,即128个字节或1024位。

对于任何输出N位的哈希算法,假设它大致随机地分配输入,则可以假设在大约sqrt(2^N)输入中冲突可能超过50%。例如,MD5散列为128位,因此您可以预期所有64位输入之间都会发生冲突。这假设一个统一的随机哈希。任何弱点都会在预计发生碰撞之前减少输入的数量。

关于math - md5对短字符串(有限数量的字符串)是否有任何唯一性保证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593850/

相关文章:

arrays - 如何循环遍历 Perl 哈希数组数组?

math - 找到与圆相切的向量

c++ - 使用哪个数值库从 Matlab 移植到 C++?

python - 如何在数学函数中使用获取下一个乘法数字

c# - 从 pfx 文件中提取公钥(类似程序集)

http - 加密 Http Post Body 有什么好处?

java - apache commons LinearObjectiveFunction 算法

php - 从 PHP 中的物理内存中清除变量的值

arrays - Perl - 将数组分配给另一个变量

go - 将 protobuf 对象哈希为字符串作为 redis 数据库的键