计算 Github API 文件 SHA
Compute Github API file SHA
我有一个文件,其内容为 "from test" - 9 个字节。文档说创建文件的 SHA 是使用 SHA1 计算的:
The file's SHA-1 hash is computed and stored in the blob object.
(来自 https://developer.github.com/v3/git/blobs/)
但是,当我计算 "from test" 的十六进制编码 SHA1 输出时,我得到 5669556d9a5c27fdd649dcaaa0873757c2aa402f
。
Github API 表示 SHA 是 62b551731eada762035d4665978027cd44291290
- 这是返回的 ETag 和 API 响应中 "sha" 的值检索文件。此外,当我使用 "from test" 作为值并使用 566955...
作为 sha 调用 CreateFile 端点时,我被告知 SHA 不正确。
我也试过添加换行符,计算内容的 base64 编码值的 SHA,计算 base64 的 SHA+ 尾随换行符,其中 none 给了我 62b551731eada762035d4665978027cd44291290
。 Github 如何计算该值?
我仔细检查了远程文件的内容是否相同 - "from test" - SHA 仍然不同。
Ah - GitHub 正在计算 blob <length>\x00<contents>
的总和,其中 length 是内容字符串的字节长度,\x00
是单个空字节。
sha1("blob 9\x00from test")
得出正确的总和!
有关详细信息,请参阅 。
我有一个文件,其内容为 "from test" - 9 个字节。文档说创建文件的 SHA 是使用 SHA1 计算的:
The file's SHA-1 hash is computed and stored in the blob object.
(来自 https://developer.github.com/v3/git/blobs/)
但是,当我计算 "from test" 的十六进制编码 SHA1 输出时,我得到 5669556d9a5c27fdd649dcaaa0873757c2aa402f
。
Github API 表示 SHA 是 62b551731eada762035d4665978027cd44291290
- 这是返回的 ETag 和 API 响应中 "sha" 的值检索文件。此外,当我使用 "from test" 作为值并使用 566955...
作为 sha 调用 CreateFile 端点时,我被告知 SHA 不正确。
我也试过添加换行符,计算内容的 base64 编码值的 SHA,计算 base64 的 SHA+ 尾随换行符,其中 none 给了我 62b551731eada762035d4665978027cd44291290
。 Github 如何计算该值?
我仔细检查了远程文件的内容是否相同 - "from test" - SHA 仍然不同。
Ah - GitHub 正在计算 blob <length>\x00<contents>
的总和,其中 length 是内容字符串的字节长度,\x00
是单个空字节。
sha1("blob 9\x00from test")
得出正确的总和!
有关详细信息,请参阅 。