为什么Windows或Linux下的同一文件有不同的SHA-1?

时间:2010-05-30 05:16:59

标签: windows linux hash msysgit sha1

为什么在同一台机器上计算同一文件的SHA-1哈希会在Windows中和msysgit Git bash中产生两个完全不同的SHA-1哈希?

SHA-1算法是不是要为所有操作系统中的同一文件生成相同的哈希值?

在Windows上(使用HashCheck):
文件hello.txt
22596363b3de40b06f981fb85d82312e8c0ed511

在msysgit的Git bash窗口内(同一台机器,同一个文件):

$ git hash-object hello.txt
3b18e512dba79e4c8300dd08aeb37f8e728b8dad

1 个答案:

答案 0 :(得分:10)

Git在计算SHA-1之前添加a header(“blob”,长度,然后为null)。有关如何在git外部模拟计算,请参阅this blog post