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

时间:2015-06-16 19:31:29

标签: javascript node.js hash cryptography sha1

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哈希值。这应该发生,还是我的代码不正确?

1 个答案:

答案 0 :(得分:0)

所以,它归结为你正在散列的东西。

正如所指出的那样,我只是在吹嘘这个名字。如果您只是散列文件内容,则sha1值将相同。但是,如果将地址值和sha1值组合在一起,则在比较两个不同位置的同一文件时将具有不同的sha1。 sha1值是否与位置无关,完全取决于您传入sha1值的内容。