为什么同一个文件在 Windows 或 Linux 下有不同的 SHA-1?
为什么在同一台机器上计算同一文件的 SHA-1 哈希值会在 Windows 中和 msysgit Git bash 中产生两个完全不同的 SHA-1 哈希值?
SHA-1 算法不是旨在为所有操作系统中的同一文件生成相同的哈希值吗?
在 Windows 上(使用 HashCheck):
文件 hello.txt
22596363b3de40b06f981fb85d82312e8c0ed511
在 msysgit 的 Git bash 窗口内(同一台机器,同一文件):
$ git hash-object hello.txt
3b18e512dba79e4c8300dd08aeb37f8e728b8dad
Why on the same machine computing the SHA-1 hash of the same file produces two completely different SHA-1 hashes in windows and inside a msysgit Git bash?
Doesn't the SHA-1 algorithm was intended to produce the same hash for the same file in all OSes?
On windows (with HashCheck):
File hello.txt
22596363b3de40b06f981fb85d82312e8c0ed511
Inside a msysgit's Git bash windows (same machine, same file):
$ git hash-object hello.txt
3b18e512dba79e4c8300dd08aeb37f8e728b8dad
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Git 在计算之前添加 一个标头(“blob”,长度,然后为 null) SHA-1。请参阅这篇博文了解如何在 git 之外模拟计算。
Git adds a header ("blob ", the length, then null) before calculating the SHA-1. See this blog post for how to emulate the calculation outside git.