当然我知道可以创建一个具有一定大小的文件以及如何操作。但是,是否可以创建具有特定大小的文件以及某个MD5指纹?
答案 0 :(得分:4)
只需创建具有给定MD5哈希值的文件difficult enough,而不添加大小要求。
您可以尝试rainbow table,但这需要很长时间才能创建并存储大量内存。
答案 1 :(得分:4)
无法找到具有特定散列的文件是加密散列函数(如md5)的定义属性之一。
虽然md5已被破坏,但这些中断只允许您使用相同的哈希创建两个不同的文件(图像),但不能使用预定的哈希值。
你想要的是一个前映像攻击,并且因为md5在攻击时仍然没有中断,你需要暴力攻击。
这平均需要2个 64 (2 128/2 )散列操作,这远远超出了当前计算机所能达到的水平。
维基百科也有一篇关于前映像攻击的文章:
http://en.wikipedia.org/wiki/Preimage_attack
答案 2 :(得分:3)
理论上,是的。实际上,它很可能需要计算文件中所有 n 字节的所有排列 - 在语言上,强制执行。这意味着,在任何合理的时间范围内都难以实现。
答案 3 :(得分:3)
MD5是一种加密哈希算法。它的唯一要点是制作具有特定散列的文件并不容易。
话虽如此,研究人员最近发现了算法中的缺陷。 Wikipedia page上有一些信息。
答案 4 :(得分:2)
MD5算法不可逆(一般来说),所以答案是否定的。除非你知道某些字符串的MD5哈希值,否则你将该字符串放在文件中。但我想这不会有多大意义。
答案 5 :(得分:1)
您创建的每个文件都有某些大小和某些 MD5哈希值。
如果你想要预定的大小和MD5哈希,这实际上是不可能的(你必须计算所有可能输入的所有哈希)。