【问题标题】:Why SHA1 generated by GIT for same binary file (image) differs from SHA1 by other tools?为什么 GIT 为相同的二进制文件(图像)生成的 SHA1 与其他工具的 SHA1 不同?
【发布时间】:2018-03-05 12:19:39
【问题描述】:

喂,

出于好奇,我为图像文件“tech01.jpg”测试了 GIT 生成的 SHA1,但 GIT 生成的 SHA1 与其他工具生成的 SHA1 不同。

据我了解,相同文件、二进制内容或相同文本的 SHA1 应该相同,而与系统无关。

那么为什么 GIT 生成的 SHA1 与其他工具生成的 SHA1 不同。 GIT 是否使用不同的加密算法或任何其他修改文件/文本的方式,或者只是我对 SHA1 的 GIT 使用的理解可能遗漏了一些东西。

这是我得到的:

我目前正在通过 Bash 使用 git 版本 2.13.0.windows.1(MingWWindows 7 64 位机器,如果这很重要的话。

测试图像文件。

【问题讨论】:

标签: git sha1


【解决方案1】:

Git 没有计算文件的 SHA-1。每个git object,包括存储在git中的每个文件,都有一个标头,其中包含有关对象的信息,包括对象的类型(在这种情况下,文件是“blob”对象)和对象的大小。

您可以通过运行计算文件的 Git 对象 ID:

git hash-object tech02.jpg

这将计算标题的 SHA-1,然后是文件的内容。

【讨论】:

  • 实际上我确实读过那一章,但忘记了标题+SHA-1 位。感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 2015-05-29
  • 2011-07-14
  • 1970-01-01
  • 2011-08-03
  • 2016-09-05
  • 2013-06-25
  • 2012-03-31
  • 1970-01-01
相关资源
最近更新 更多