ファイルのMD5SUMコピー

ファイルのMD5SUMコピー

ファイルをコピーすると、ファイルのMD5SUMは変更されますか?

例:

$ md5sum file01.dmp
$ cp file01.dmp file02.dmp
$ md5sum file02.dmp

両方のMD5SUMが一致してはいけませんか?

答え1

md5sumsha1sumなどsha256sum)ファイル内容のハッシュを計算します。これには、ファイル名やその他のメタデータ(変更時間など)は含まれません。両方のファイルの内容が同じ場合、md5sum各ファイルに対して同じハッシュが生成されます。 (出力はmd5sumハッシュ値とファイル名で構成されます。ファイル名を変更すると、ハッシュ値は変更されませんが、出力のファイル名部分は変更されます。)

異なるハッシュを生成する2つのファイルは常に異なる内容を持ちます。コピーされたファイルが別のハッシュを生成する場合は、何らかの方法でコピーが失敗したか、コピー後のファイルの1つが変更されました。

しかしそれはいいえ同じハッシュを生成する2つのファイルの内容は同じでなければなりません。ハッシュは固定サイズなので、複数の異なるファイルが同じハッシュを生成します。これを衝突といいます。しかし、発見する衝突は簡単なことになってはいけません。 (これはMD5用であるため、もはや安全とは見なされません。MD5は依然として偶発的なファイル破損を検出するのに十分ですが、悪意のある修正ではありません。)

答え2

md5sum出力は最後のフィールドにファイル名自体を報告するため、変更されます。ハッシュ自体のみが出力されるようにファイル名を削除するには、awkまたは次を使用しますcut

md5sum filename | cut -d ' ' -f1

関連情報