从github下载的zip上的签名不匹配

时间:2013-08-30 17:32:36

标签: git security github download versioning

当我在github上点击包的“下载zip”按钮,或者通过https://github.com/ {username} / {projectname} / archive / {sha} .zip下载特定提交时,文件的sha1sum最终在我的电脑上不同意网页上显示的那个。

为什么会这样? sha1sum不匹配是不安全的。如何使用可验证的hashsum下载提交的完整源代码而不使用“git”命令或必须在github上创建一个帐户(因为我只想下载一个供本地使用的库,而不是编辑它)。

谢谢!

1 个答案:

答案 0 :(得分:4)

使用以下网址下载repo源内容...

https://github.com/{username}/{projectname}/archive/{sha}.zip

...将使用以下url

检索提交中包含的代码源

https://github.com/{username}/{projectname}/commits/{sha}

在检索到的存档上运行sha1sum 会产生目标提交的sha。

this chapter 一书的 Pro Git 详细介绍了Git依赖SHA-1哈希来唯一标识其内部对象的方式。您会注意到任何提交的sha将取决于其父提交的sha(以及其所有祖先的间接)。这意味着,为了生成这样的sha,您需要导致此提交的所有更改的完整历史记录。

为了安全地验证源代码没有被更改并且与GitHub上显示的提交sha相匹配,除了克隆完整存储库并运行以下命令之外别无他法。此命令将使用提交的内容更新您的工作目录。

git checkout {sha}

如果git找不到与此sha匹配的提交,则该命令将失败。