Compression 是否可以使用元数据、SHA和几个字节重新创建文件?

Compression 是否可以使用元数据、SHA和几个字节重新创建文件?,compression,sha,lossless-compression,Compression,Sha,Lossless Compression,我可能是个傻瓜,但我希望如果我们只有以下条件,就有可能重新创建文件的精确副本: 这是确切的长度和类型 其中一些是开始字节(假设为100) 这是md5和sha256签名 我不知道这是否可能,但到目前为止,我还无法在网上找到任何干扰我所描述内容的东西 旁注:我知道这样的过程在计算上会很昂贵,所以如果可能的话,我打算尝试使用小文件(1-3mb)不幸的是,这是不实际的,考虑到您的“小文件(1-3mb)”示例,您在当前计算机的性能方面已经远远超出了规模 一个简单的查询来计算多长时间 128字节的数据

我可能是个傻瓜,但我希望如果我们只有以下条件,就有可能重新创建文件的精确副本:

  • 这是确切的长度和类型
  • 其中一些是开始字节(假设为100)
  • 这是md5和sha256签名
我不知道这是否可能,但到目前为止,我还无法在网上找到任何干扰我所描述内容的东西


旁注:我知道这样的过程在计算上会很昂贵,所以如果可能的话,我打算尝试使用小文件(1-3mb)

不幸的是,这是不实际的,考虑到您的“小文件(1-3mb)”示例,您在当前计算机的性能方面已经远远超出了规模

一个简单的查询来计算多长时间

  • 128字节的数据文件(256^128字节序列的可能组合)
  • 当你能计算出每秒10亿(10^9*10^9*10^9=10^27)的摘要时
  • 。。。几分钟,几小时,几天,几年
如果你愿意,你最终会

10463951242053918061369633697265801812637188643118516351928748864292094864195432122264041812202986452727277104799464718215680589004332016189037791576956735134601788071700268169006221818240189631008834448226154239518944108944497601509840888175251093400640763835888507742660027708660224/183567945757572727272727272727272727272727272727272727272727272727272727272727272727272818181818181818181818181818181818181818191918994949494

或者简称为

5.700447535712569468953910422339626882350257825415606695024×10^273

又名“某物某物”,结尾有273个零

即使在运气和平均尝试次数达到正确的数字之前,你也只需要一半,这仍然是。。。不幸的是,比我们的宇宙预期的热死亡要大几个数量级

您将需要针对您选择的摘要算法进行有针对性的攻击,利用已知的弱点。就目标碰撞而言,但相对而言,大多数其他SHA-x实现仍然是安全的

现在,我选择“十亿”作为一个相当慷慨的估计,你可以在一秒钟内计算出多少个摘要。我完全不知道这是否准确,但273个零的结果应该告诉你,即使我偏离了一个数量级或十个数量级,你仍然离那很远


根据2012年的数据,当前计算机(当时)每秒可以计算1亿个SHA512哈希。如果我们应用于此,每18个月将性能提高一倍,我相信这是正常的,我们今天可能会计算出1亿*2^(6)[=64]个哈希,约为每秒64亿个哈希。要达到我们的目标(仍有273个零),我们还需要10亿个哈希才能达到目标。

不幸的是,这是不现实的,以你的“小文件(1-3mb)”为例,你的性能与当前计算机的性能相比还有很大差距

一个简单的查询来计算多长时间

  • 128字节的数据文件(256^128字节序列的可能组合)
  • 当你能计算出每秒10亿(10^9*10^9*10^9=10^27)的摘要时
  • 。。。几分钟,几小时,几天,几年
如果你愿意,你最终会

10463951242053918061369633697265801812637188643118516351928748864292094864195432122264041812202986452727277104799464718215680589004332016189037791576956735134601788071700268169006221818240189631008834448226154239518944108944497601509840888175251093400640763835888507742660027708660224/183567945757572727272727272727272727272727272727272727272727272727272727272727272727272818181818181818181818181818181818181818191918994949494

或者简称为

5.700447535712569468953910422339626882350257825415606695024×10^273

又名“某物某物”,结尾有273个零

即使在运气和平均尝试次数达到正确的数字之前,你也只需要一半,这仍然是。。。不幸的是,比我们的宇宙预期的热死亡要大几个数量级

您将需要针对您选择的摘要算法进行有针对性的攻击,利用已知的弱点。就目标碰撞而言,但相对而言,大多数其他SHA-x实现仍然是安全的

现在,我选择“十亿”作为一个相当慷慨的估计,你可以在一秒钟内计算出多少个摘要。我完全不知道这是否准确,但273个零的结果应该告诉你,即使我偏离了一个数量级或十个数量级,你仍然离那很远


根据2012年的数据,当前计算机(当时)每秒可以计算1亿个SHA512哈希。如果我们应用于此,每18个月将性能提高一倍,我相信这是正常的,我们今天可能会计算出1亿*2^(6)[=64]个哈希,约为每秒64亿个哈希。要达到我们的目标(仍有273个零在后面),我们仍需要10亿个散列才能达到目标。

即使有你能想象的所有神奇的计算能力,你所要求的也是不可能的。如果您获取一个1 MB的文件并计算其MD5和SHA256,则剩下384位。我将忽略文件的前100个字节,你说你知道。你还剩下800多万比特。减去384,仍然有超过800万位


这意味着大约有28x106(~102400000)个不同的1MB文件映射到完全相同的MD5和SHA256签名。即使您可以计算所有这些文件,也无法确定它们中的哪一个是原始文件。

即使有您可以想象的所有神奇计算能力,您所要求的也是不可能的。如果您获取一个1 MB的文件并计算其MD5和SHA256,则剩下384位。我将忽略