Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以创建具有给定大小和MD5哈希的文件?_C#_Security_Hash - Fatal编程技术网

C# 是否可以创建具有给定大小和MD5哈希的文件?

C# 是否可以创建具有给定大小和MD5哈希的文件?,c#,security,hash,C#,Security,Hash,当然,我知道可以创建具有特定大小的文件,以及如何创建。但是,是否可以创建具有特定大小和特定MD5指纹的文件?您创建的每个文件都具有特定大小和特定MD5哈希 如果您想要一个预先确定的大小和MD5散列,这实际上是不可能的(您必须计算所有可能输入的所有散列)。理论上,是的。实际上,它很可能需要计算一个文件中所有n字节的所有排列——基本上是强制的。这意味着,这在任何合理的时间范围内都很难实现。MD5算法是不可逆的(一般来说),因此答案是否定的。当然,除非您知道某个字符串的MD5哈希,并将该字符串放入文件

当然,我知道可以创建具有特定大小的文件,以及如何创建。但是,是否可以创建具有特定大小和特定MD5指纹的文件?

您创建的每个文件都具有特定大小和特定MD5哈希


如果您想要一个预先确定的大小和MD5散列,这实际上是不可能的(您必须计算所有可能输入的所有散列)。

理论上,是的。实际上,它很可能需要计算一个文件中所有n字节的所有排列——基本上是强制的。这意味着,这在任何合理的时间范围内都很难实现。

MD5算法是不可逆的(一般来说),因此答案是否定的。当然,除非您知道某个字符串的MD5哈希,并将该字符串放入文件中。但是我想这没有多大意义。

仅仅用给定的MD5哈希创建一个文件是没有增加大小要求的


您可以尝试,但这需要较长的创建时间和大量的内存存储。

MD5是一种加密哈希算法。它唯一的优点是,用特定的散列创建文件并不容易


尽管如此,研究人员最近发现了该算法的缺陷。上有一些信息。

无法找到具有特定哈希的文件是加密哈希函数(如md5)的定义属性之一

虽然md5已中断,但这些中断只允许您使用相同的哈希创建两个不同的文件(图像),而不允许使用预定的哈希

您需要的是所谓的映像前攻击,由于md5在该攻击方面仍然没有中断,因此您需要使用暴力

这平均需要264(2128/2)个哈希运算,这远远超出了我们在当前计算机上所能获得的任何结果

维基百科也有一篇关于图像前攻击的文章:

事实并非如此。如果文件的大小明显大于散列的大小,则不太可能对所有排列n字节进行迭代。