ファイルをコピーすると、ファイルのMD5SUMは変更されますか?
例:
$ md5sum file01.dmp
$ cp file01.dmp file02.dmp
$ md5sum file02.dmp
両方のMD5SUMが一致してはいけませんか?
答え1
md5sum
(sha1sum
などsha256sum
)ファイル内容のハッシュを計算します。これには、ファイル名やその他のメタデータ(変更時間など)は含まれません。両方のファイルの内容が同じ場合、md5sum
各ファイルに対して同じハッシュが生成されます。 (出力はmd5sum
ハッシュ値とファイル名で構成されます。ファイル名を変更すると、ハッシュ値は変更されませんが、出力のファイル名部分は変更されます。)
異なるハッシュを生成する2つのファイルは常に異なる内容を持ちます。コピーされたファイルが別のハッシュを生成する場合は、何らかの方法でコピーが失敗したか、コピー後のファイルの1つが変更されました。
しかしそれはいいえ同じハッシュを生成する2つのファイルの内容は同じでなければなりません。ハッシュは固定サイズなので、複数の異なるファイルが同じハッシュを生成します。これを衝突といいます。しかし、発見する衝突は簡単なことになってはいけません。 (これはMD5用であるため、もはや安全とは見なされません。MD5は依然として偶発的なファイル破損を検出するのに十分ですが、悪意のある修正ではありません。)
答え2
md5sum出力は最後のフィールドにファイル名自体を報告するため、変更されます。ハッシュ自体のみが出力されるようにファイル名を削除するには、awk
または次を使用しますcut
。
md5sum filename | cut -d ' ' -f1