Cara sederhana untuk membandingkan checksum MD5?

11

Setelah mengunduh file yang memiliki checksum md5 tersedia saat ini saya memeriksanya

md5 *file* | grep *given_checksum*

misalnya

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2

tapi rasanya lucu bagiku untuk meminta grep dan pipa untuk apa yang tentunya merupakan tugas yang sangat umum. Seorang ngotot untuk melakukan sesuatu secara efisien, saya bertanya-tanya ada cara yang lebih baik untuk melakukan ini?

Ben Griffiths
sumber
Alat macam apa itu md5? Dari paket mana asalnya?
manatwork
Saya tidak menyadari bahwa itu berbeda sampai saya benar-benar mengajukan pertanyaan ini dan mulai mencari jawabannya, tetapi saya menggunakan bash pada OS X dan itu adalah alat milik Apple sendiri yang tidak memiliki opsi -c. Rupanya mereka berhenti bundling md5sum di 10,5 ... Saya sekarang telah menginstal alat md5sum unix asli.
Ben Griffiths

Jawaban:

20

md5summemiliki -copsi untuk memeriksa set jumlah yang ada, dan status keluarnya menunjukkan keberhasilan / kegagalan.

Contoh:

$ echo "ff9f75d4e7bda792fca1f30fc03a5303  package.deb" | md5sum -c -
package.deb: OK

Temukan sumber yang bagus di sini

psusi
sumber
4
Terima kasih. Hanya untuk penyelesaian, saya sekarang menggunakan md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"yang tampaknya lebih bersih daripada melibatkan grep!
Ben Griffiths
hmm, tidak banyak perbaikan ke file $ md5 asli | grep given_checksum dan jika Anda ingin menggunakan string tidak sensitif huruf Anda harus tetap menggunakan grep -i
StandardNerd
Saya mendapatkan no properly formatted MD5 checksum lines foundketika saya menggunakan md5sum -c <file.md5> <file>tetapi perintah ini bekerja untuk saya.
Vishrant
1

Cara bash yang biasa adalah:

shopt -s nocasematch
if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Hauke ​​Laging
sumber
1
md5sum -c <filename>.zip.md5 <filename>.zip

Ini akan memberitahu Anda OK jika mereka sama.

Ini bekerja dengan tar juga.

Anthony Petrillo
sumber
0

Terinspirasi oleh jawaban psusi

echo "$(cut -f1 -d' ' your_file.jar.md5) your_file.jar" | md5sum -c -

Saya menggunakan cutkarena tidak semua md5disimpan dengan cara yang sama. Contoh

Vishrant
sumber