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


回答:


31

ファイル名がハッシュ計算に含まれている場合のみ。たとえば、疑似コードで:

$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);

2つの別々のハッシュを生成します。


20
問題は、一般的なアルゴリズムではなく、CLIツール「md5sum」について尋ねていることです。
jameshfisher 2013年

205

いいえ、ハッシュはファイルの内容のみです。これは、ソースmd5sumそのMD5実装で確認できます。にアクセスできる場合は、これをテストすることもできますmd5sum

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$

18
これが答えになるはずです。質問には「md5sum」というタグが付けられています。
ingyhere

3
正解をありがとう。
エディB 14

パーフェクト!私はそれを試すLinuxを持っていませんでした。しかし、私はStackoverflowを持っています:)
Faizan

これを知るためにLinuxを使用する必要はありません。MacOSXまたはWindowsでも同じ結果が得られます。
Alexandre Mulatinho

1
@alexandreMulatinhoのような同等のウィンドウを探している人がいる場合は、md5sumをfcivに、cpをcopyに置き換えれば、まったく同じように動作します。その後、LinuxのWindowsサブシステムに入ると、md5sumハッシュはfcivハッシュと一致します。
Jake Stevens-Haas

4

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


3
また、Windowsファイルシステムはファイルにファイル名を格納しません。の単純なポートはmd5sum期待どおりに動作するはずです。
MauganRa 2017

1

ハッシュがファイルの内容から計算される場合、計算されません。


4
問題は、一般的なアルゴリズムではなく、CLIツール「md5sum」について尋ねていることです。
jameshfisher 2013年

0

ESXi(正確にはESXi 5.5)では、md5sumは同じ内容ですが、ファイル名が異なります。そのため、VMFS-5のファイル構造にはファイル名も含まれていると思います。ファイル名が気にならない場合、ファイルの内容のmd5sumのみを確認する方法はありますか?オプションが見えませんでした。助言がありますか?


どのファイルについて話しているのですか?仮想ディスクイメージ(.vmdk)?vmdkヘッダーには、ファイル名と場所に依存する可能性のあるデータがあります。テストでファイルの名前をどのように変更しましたか?---それ以外の場合、ファイルコンテンツの観点から見ると、VMFSは通常のファイルシステムであり、ファイルのコンテンツはファイル名に直接依存しません。
pabouk 2015年

-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回エクスポートされます。


つまり、ファイルの内容はまったく同じではありません...プログラムはそれぞれに異なるメタデータをエクスポートする必要があります
Milney

-2

1.md5は、FILEのバイナリコンテンツに基づいて計算されます。2.ファイル名、最後に変更されたものなどはメタデータです。md5は実際にはメタデータに依存していません。私は以下の手順でこれをテストしました。「最後に変更された」メタデータを使用できますファイルにスペースを追加してハッシュを再計算したところ、「abc」が返されたと言いました。iii)ステップ(ii)で変更を削除しました。ハッシュを再計算すると、最初のハッシュ( "xyz")が得られました。

これにより、ファイルのメタデータが変更されても、ファイルの内容が変更されない限り、ハッシュは同じままです。

それが役に立てば幸い。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.