相关疑难解决方法(0)

git如何计算文件哈希值?

存储在树对象git ls-tree中的SHA1哈希值(由返回的sha1sum)与文件内容的SHA1哈希值不匹配(由返回)

$ git cat-file blob 4716ca912495c805b94a88ef6dc3fb4aff46bf3c | sha1sum
de20247992af0f949ae8df4fa9a37e4a03d7063e  -
Run Code Online (Sandbox Code Playgroud)

git如何计算文件哈希值?它是否在计算哈希值之前压缩内容?

git hash checksum sha1 git-hash

120
推荐指数
3
解决办法
4万
查看次数

为什么Python计算的"hashlib.sha1"与文件的"git hash-object"不同?

我正在尝试计算文件的SHA-1值.

我编造了这个脚本:

def hashfile(filepath):
    sha1 = hashlib.sha1()
    f = open(filepath, 'rb')
    try:
        sha1.update(f.read())
    finally:
        f.close()
    return sha1.hexdigest()
Run Code Online (Sandbox Code Playgroud)

对于特定文件,我得到这个哈希值:
8c3e109ff260f7b11087974ef7bcdbdc69a0a3b9
但是当我用git hash_object计算值时,我得到这个值: d339346ca154f6ed9e92205c3c5c38112e761eb7

他们怎么不一样?我做错了什么,或者我可以忽略它的区别?

python git hash

45
推荐指数
2
解决办法
3万
查看次数

为什么git hash-object返回与openssl sha1不同的哈希?

上下文:我从code.google 下载了一个文件(Audirvana 0.7.1.zip)到我的Macbook Pro(Mac OS X 10.6.6).

我想验证校验和,该特定文件的校验和发布为862456662a11e2f386ff0b24fdabcb4f6c1c446a(SHA-1). git hash-object给了我一个不同的哈希,但openssl sha1返回了预期的862456662a11e2f386ff0b24fdabcb4f6c1c446a.

以下实验似乎排除了任何可能的下载损坏或换行差异,并表明实际上有两种不同的算法在起作用:

$ echo A > foo.txt
$ cat foo.txt
A
$ git hash-object foo.txt 
f70f10e4db19068f79bc43844b49f3eece45c4e8
$ openssl sha1 foo.txt 
SHA1(foo.txt)= 7d157d7c000ae27db146575c08ce30df893d3a64
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

git openssl sha1

44
推荐指数
2
解决办法
7158
查看次数

git commit对象的文件格式是什么?

上下文:我希望能够通过我的git提交消息和提交进行搜索而无需经历令人费解的复杂git grep命令,因此我决定看看如何存储git commit消息.

我看了一下.git文件夹,它看起来像是存储的提交

.git/objects 
Run Code Online (Sandbox Code Playgroud)

.git对象文件夹包含一堆名称为a6和9b的文件夹.这些文件夹中的每个文件夹都包含一个名称类似于提交的文件2f29598814b07fea915514cfc4d05129967bf7.当我在文本编辑器中打开其中一个文件时,我会感到胡言乱语.

  1. 什么文件格式是这个乱码/如何存储git提交对象?
  2. 在这个git commit日志中,文件夹9b包含一个commit sha

    aed8a9f773efb2f498f19c31f8603b6cb2a4bc
    
    Run Code Online (Sandbox Code Playgroud)

    为什么,并且是否存在多个提交sha将存储在文件9b中的情况?

  3. 有没有办法将这个乱码转换成纯文本,以便我可以在文本编辑器中混淆提交?

git

11
推荐指数
3
解决办法
7473
查看次数

是否可以预先计算 git 提交哈希,以便将其放置在提交本身中?

我正要从网站管理员中删除一项我认为没有人在使用的功能。不过,我想留言以防万一有人仍在使用它。我打算用以下内容替换 HTML 模板:

<p>This feature has been disabled.  If you need it back please ask engineering to revert #1234567890abcdef<p>
Run Code Online (Sandbox Code Playgroud)

显然我意识到这可以通过两次提交轻松完成。然而,我认为从密码学角度来看这是一个有趣的问题。

假设您只能修改哈希本身,那么满足此属性的哈希实际存在的可能性有多大?当你缩短哈希值时(因为 git 允许唯一的前缀),这样的哈希值的可能性可能会增加。6 个字符的前缀的概率是多少?找到它有多难?

git cryptography sha

7
推荐指数
1
解决办法
466
查看次数

Git如何存储树对象?

我试图理解git如何存储树对象的确切格式.如何计算树对象的哈希值?

git

5
推荐指数
2
解决办法
1204
查看次数

git tag 对象的格式是什么以及如何计算其 SHA?

我熟悉Git 如何为文件(blob)创建 SHA1 哈希值,但不熟悉如何为标签对象创建它们。如果我创建一个带注释的标签,我认为它们是,但是配方是什么?我如何在 Git 之外复制它(例如,在 Perl 或 Python 中)?

tags git hash sha1

4
推荐指数
1
解决办法
2574
查看次数

标签 统计

git ×7

hash ×3

sha1 ×3

checksum ×1

cryptography ×1

git-hash ×1

openssl ×1

python ×1

sha ×1

tags ×1