不同位置的相同文件会有不同的 sha1 哈希值吗?

Will identical files in different locations have different sha1 hashes?

var crypto = require('crypto');
var fs = require('fs');
var file1 = process.argv[2];
var file2 = process.argv[3];

var sha1sum = function(input){
    return crypto.createHash('sha1').update(JSON.stringify(input)).digest('hex')
};

var first = sha1sum(file1);
var second = sha1sum(file2);

console.log(first + '  ' + file1);
console.log(second + '  ' + file2);
if (first == second) {
    console.log("the two hashes are equal");
} else {
    console.log("the two hashes aren't equal");
}

以上是我目前使用的代码。它接受两个文件输入并比较它们的哈希值。但是,当从两个不同位置传递同一个文件作为参数时,它们具有不同的 sha1 哈希值。这是应该发生的,还是我的代码不正确?

所以,这归结为您要散列的内容。

正如所指出的,我只是对名称进行哈希处理。如果您只散列文件内容,则 sha1 值将相同。但是,如果将地址值和 sha1 值组合在一起,则在比较两个不同位置的同一文件时,将具有不同的 sha1。 sha1 值是否与位置无关完全取决于您传递给 sha1 值的内容。