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位。我将忽略