C# 是否可以创建具有给定大小和MD5哈希的文件?
当然,我知道可以创建具有特定大小的文件,以及如何创建。但是,是否可以创建具有特定大小和特定MD5指纹的文件?您创建的每个文件都具有特定大小和特定MD5哈希C# 是否可以创建具有给定大小和MD5哈希的文件?,c#,security,hash,C#,Security,Hash,当然,我知道可以创建具有特定大小的文件,以及如何创建。但是,是否可以创建具有特定大小和特定MD5指纹的文件?您创建的每个文件都具有特定大小和特定MD5哈希 如果您想要一个预先确定的大小和MD5散列,这实际上是不可能的(您必须计算所有可能输入的所有散列)。理论上,是的。实际上,它很可能需要计算一个文件中所有n字节的所有排列——基本上是强制的。这意味着,这在任何合理的时间范围内都很难实现。MD5算法是不可逆的(一般来说),因此答案是否定的。当然,除非您知道某个字符串的MD5哈希,并将该字符串放入文件
如果您想要一个预先确定的大小和MD5散列,这实际上是不可能的(您必须计算所有可能输入的所有散列)。理论上,是的。实际上,它很可能需要计算一个文件中所有n字节的所有排列——基本上是强制的。这意味着,这在任何合理的时间范围内都很难实现。MD5算法是不可逆的(一般来说),因此答案是否定的。当然,除非您知道某个字符串的MD5哈希,并将该字符串放入文件中。但是我想这没有多大意义。仅仅用给定的MD5哈希创建一个文件是没有增加大小要求的
您可以尝试,但这需要较长的创建时间和大量的内存存储。MD5是一种加密哈希算法。它唯一的优点是,用特定的散列创建文件并不容易
尽管如此,研究人员最近发现了该算法的缺陷。上有一些信息。无法找到具有特定哈希的文件是加密哈希函数(如md5)的定义属性之一 虽然md5已中断,但这些中断只允许您使用相同的哈希创建两个不同的文件(图像),而不允许使用预定的哈希 您需要的是所谓的映像前攻击,由于md5在该攻击方面仍然没有中断,因此您需要使用暴力 这平均需要264(2128/2)个哈希运算,这远远超出了我们在当前计算机上所能获得的任何结果 维基百科也有一篇关于图像前攻击的文章:
事实并非如此。如果文件的大小明显大于散列的大小,则不太可能对所有排列n字节进行迭代。