web-dev-qa-db-ja.com

ファイル名が変更された場合、ファイルのハッシュは変更されますか?

ファイル名、パス、タイムスタンプ、または権限が変更された場合、ファイルのハッシュは変更されますか?

$ echo some contents > testfile
$ shasum testfile 
3a2be7b07a1a19072bf54c95a8c4a3fe0cdb35d4  testfile
7
tarabyte

簡単なテストの後、私が知る限りではありません。

$ echo some contents > testfile
$ shasum testfile 
3a2be7b07a1a19072bf54c95a8c4a3fe0cdb35d4  testfile
$ mv testfile newfile
$ shasum newfile 
3a2be7b07a1a19072bf54c95a8c4a3fe0cdb35d4  newfile
8
tarabyte

ファイルのハッシュは、その内容のハッシュです。ファイル名、タイムスタンプ、権限などのメタデータはハッシュに影響を与えません。

壊れていない暗号化ハッシュを想定すると、2つのファイルのハッシュが同じになるのは、同じ内容の場合だけです。このようなハッシュの最も一般的なものは、SHA-2ファミリー(SHA-256、SHA-384、SHA-512)とSHA3ファミリーです。これには、破損したMD5またはSHA-1や、暗号ハッシュではないcksumなどのCRCは含まれません。