96

ファイル名を変更すると、ファイルの MD5 ハッシュに影響しますか?

4

7 に答える 7

219

No, the hash is of the file contents only. You can see this in the source for md5sum and its MD5 implementation. You can also test this if you have access to md5sum:

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$
于 2013-01-16T14:38:08.733 に答える
33

「ファイルの MD5 ハッシュ」の通常の定義は、ハッシュがファイルの内容に基づいているというものです。名前は自由に変更できます。

$hash1 = md5(file);
// change file name
$hash2 = md5(file);

2 つのハッシュ コードは同じになります。

一部の (かなり特殊な) ユース ケースでは、ファイル メタデータ (名前、タイム スタンプなど) は、ハッシュの計算に使用されるデータの一部です。それで

$hash1 = md5(file);
// change file name
$hash2 = md5(file);

2 つの個別のハッシュが生成されます。

于 2011-02-20T03:57:13.353 に答える
6

EXTファイルシステムを使用するLinuxでは、ファイル名はファイルに保存されないため、ファイルが存在するディレクトリエントリ(dentry)に保存され、ファイルのinodeが名前にマップされるため、そうではありません。ファイル名を変更しても、Linux の md5sum には影響しません。Windowsでは、確信が持てません。

于 2013-09-17T19:03:01.220 に答える
0

ESXi (正確には ESXi 5.5) では、同じ内容でファイル名が異なる md5sum が異なります。これにより、VMFS-5 ファイル構造にはファイル名も含まれていると思われます。ファイル名を気にしない場合、ファイルの内容の md5sum だけを確認する方法はありますか? 選択肢が見えませんでした。助言がありますか?

于 2014-06-04T11:09:49.653 に答える
0

ハッシュがファイルの内容から計算される場合、そうすべきではありません。

于 2011-02-20T03:55:35.743 に答える
-1

コメントへの応答として、https://stackoverflow.com/a/14360831/9392847 :

これは、1 つのファイルが別のファイルのコピーである場合にのみ機能しますが、異なる名前の 2 つの異なるファイルがまったく同じ内容で生成された場合には機能しません。私はこれを試しました:

nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/1test.pdf
c5a445b7186dfb220ea79d2001acf3f1  /home/nancy/Documents/1test.pdf
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/2test.pdf
cefa063abf0c0a9e80b2b75e70100836  /home/nancy/Documents/2test.pdf

1test.pdf と 2test.pdf の両方のファイルは、gimpソフトウェアを使用して作成されます。同じコンテンツが 2 つの異なる名前で 2 回エクスポートされます。

于 2019-12-22T14:30:50.777 に答える