当前位置: 首页 > 面试题库 >

为什么同一文件的两个tarball的md5哈希值不同?

巫新知
2023-03-14
问题内容

我可以跑:

echo "asdf" > testfile
tar czf a.tar.gz testfile
tar czf b.tar.gz testfile
md5sum *.tar.gz

而事实证明,a.tar.gz并且b.tar.gz有不同的MD5哈希值。的确,它们是不同的,这diff -u a.tar.gz b.tar.gz证实了这一点。

我还需要传递其他哪些标志,tar以便其输出随时间推移与相同输入保持一致?


问题答案:

tar czf outfile infiles 相当于

tar cf - infiles | gzip > outfile

文件不同的原因是因为gzip将其输入文件名和修改时间放入了压缩文件中。当输入是管道时,它将使用空字符串作为文件名,并使用当前时间作为修改时间。

但是它也有一个--no- name选项,告诉它不要将名称和时间戳记放入文件中。因此,如果您显式编写扩展命令,而不是使用-z选项tar,则可以使用此选项。

tar cf - testfile | gzip --no-name > a.tar.gz
tar cf - testfile | gzip --no-name > b.tar.gz

我在OS X 10.6.8上进行了测试,并且可以正常工作。



 类似资料:
  • 问题内容: 我不知道如何实现从php到java的这几行。 好吧,我尝试将其转换,但是得到了不同的结果! java中的结果不同于php中的结果。 你能帮我吗??先感谢您 :) 问题答案: 您不能在不将其转换为字符串的情况下直接使用seq20吗?我会这样:

  • 问题内容: 从这个问题出发,我很想知道何时 计算 python对象的哈希值? 在某个实例的时间 第一次叫 每次都被调用,或者 我还有其他机会吗? 这可能会根据对象的类型而有所不同吗? 为什么其他整数等于其哈希值呢? 问题答案: 通常可以在每次使用哈希时进行计算,因为您可以很容易地检查一下自己(请参阅下文)。当然,任何特定对象都可以自由缓存其哈希。例如,CPython字符串执行此操作,但元组不执行此

  • 问题内容: Python MD5哈希与shell上md5sum命令创建的哈希不同。为什么? 问题答案: 追加a,因为您通常不希望外壳中的行不以换行符结尾(如果提示不是从最左边开始,则看起来很丑)。 使用参数省略尾随的换行符,它将输出与您的python脚本相同的校验和:

  • 问题内容: 这个问题与PHP的实现有关。对于此问题,不计算盐的前7个字符,因此盐’ ‘的长度为1,因为它仅是盐的1个字符和元数据的7个字符。 当使用长度超过22个字符的盐字符串时,生成的哈希值不会发生变化(即,截断),而当使用长度小于21个字符的字符串时,盐将被自动填充(显然带有’ ‘字符);这非常简单。但是,如果给定一个Salt 20个字符和Salt 21个字符,并且除了21个长度的salt的最

  • 问题内容: 我对加密/哈希知之甚少。 我必须对加密密钥进行哈希处理。Java中的示例是这样的… 现在,如果我错了,请纠正我,但是上面的代码使用MD5算法对字符串进行了哈希处理。 当我在C#中哈希相同的字符串时,我希望得到相同的结果。 我当前的C#代码看起来像这样… 但是末字节结果不匹配。 Java得到… C#得到… 我需要C#代码才能获得与Java代码相同的结果(不是相反),有什么想法吗? 谢谢。

  • 好吧,这里都是我的问题。我正在尝试用MD5哈希加密字符串。下面是我试图哈希的字符串: 以下是预期输出: 下面是我在Android应用程序中得到的信息: 下面是我正在使用的代码: 在Android上运行这段代码时,我得到了上述意想不到的结果,但当我运行这段代码时,就像一个Java程序传递相同的字符串一样,我得到了预期的输出... 究竟是怎么回事?几天来,我一直被这件事难住,在网上搜寻线索。我已经尝试