相关疑难解决方法(0)

Git如何处理blob上的SHA-1冲突?

这可能永远不会发生在现实世界中,并且可能永远不会发生,但让我们考虑一下:假设您有一个git存储库,进行提交,并且变得非常不幸:其中一个blob最终拥有相同的SHA-1另一个已存在于您的存储库中.问题是,Git将如何处理这个?简直失败了?找到一种方法来链接两个blob并根据上下文检查哪一个需要?

更多的是脑筋急转弯而非实际问题,但我发现这个问题很有趣.

git hash-collision

527
推荐指数
6
解决办法
7万
查看次数

为什么Git不使用更现代的SHA?

我读到Git使用SHA-1摘要作为修订版的ID.为什么不使用更现代的SHA版本?

git cryptography sha

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

新发现的SHA-1碰撞如何影响Git?

最近,一组研究人员使用相同的SHA-1哈希生成了两个文件(https://shattered.it/).

由于Git将此哈希用于其内部存储,这种攻击在多大程度上会影响Git?

git sha1

26
推荐指数
2
解决办法
4107
查看次数

如果两个Git提交具有相同的SHA-1哈希,会发生什么?

让我通过说我知道发生这种情况极其微不足道的几率来说明这一点.我知道制造它或多或少是不可能的,并且不可能"在野外"发生.这只是关于Git内部的假设问题.

所以,这是我的问题:如果两个Git提交哈希相同,会发生什么?对于初学者:

  • 承诺会成功吗?
  • 以后它可以作为一个独立的头检查出来吗?
  • 随后的提交是否可行?

git

13
推荐指数
1
解决办法
1986
查看次数

Git 正在转向新的哈希算法 SHA-256,但为什么 git 社区选择了 SHA?256?

我刚刚从这篇HN-post 中了解到 git 正在转向新的散列算法(从SHA-1SHA-256

我想知道什么SHA-256最适合 git 的用例。是否有任何/许多强有力的技术原因,或者SHA-256受欢迎程度是否可能是一个重要因素?(我在猜测)看着https://en.wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions页面,我看到你有许多现代和旧的替代品。其中一些比SHA-256(例如https://crypto.stackexchange.com/q/26336)性能更高(如果不是更高的话,几乎相同)

git hash cryptography

13
推荐指数
1
解决办法
5440
查看次数

对哈希感到困惑

说我有一个5000字符的文字.我通过散列程序运行它并生成一个40 char长的散列.现在我运行另一个文本blob,10000个字符.它仍然会产生40个字符长的哈希值.对于任何长度的文本都是如此.

我的问题是,如果哈希值都是唯一的,我不能将任何东西压缩成40个字符串吗?

hash

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

可以由两个人提交相同的哈希?

更新:我将两个东西混合在一起:第一行实际指向目录(在下面的答案中有很好的解释),第二行指向父提交.我让第二个误导了我.谢谢大家的澄清.


我正在学习git,我正在复制所做的代码.我在一个名为Make a commit的小节中,这不是第一次提交.她承诺后,这就是她得到的(为了格式化原因我划掉了她的电子邮件):

tree ce72afb5ff229a39f6cce47b00d1b0ed60fe3556

父母774b54a193d6cfdd081e581a007d2e11f784b9fe

作者Mary Rose Cook ......

提交人Mary Rose Cook ...

a2

而且,神秘地,我得到了(我划掉了我的个人信息)

tree ce72afb5ff229a39f6cce47b00d1b0ed60fe3556

parent c96fbf6143ccef645d1cb867b05427c399a9bcb3

作者....

提交者......

a2

比较当前树的两个哈希,很明显我们都得到相同的哈希(我确实按照她的代码).

所以我很好奇这是如何可能的?我知道git据说可以隐藏那个时刻的快照,但我的megadatas肯定与她的不同.愿有人知道会发生什么吗?

git internal git-commit

2
推荐指数
1
解决办法
602
查看次数

标签 统计

git ×6

cryptography ×2

hash ×2

git-commit ×1

hash-collision ×1

internal ×1

sha ×1

sha1 ×1