Verifikasi Berkas dengan MD5 Checksum

Apa berkas yang kita unduh telah lengkap tanpa kerusakan? Apakah file yang diberikan oleh seseorang kepada kita sama dengan file yang dimiliki oleh penyedia utama tanpa perubahan? Di Linux, untuk mengatasi ini salah satunya bisa menggunakan MD5 checksum.

Kalkulasi MD5 (Message-Digest algorithm 5dari suatu berkas akan menghasilkan kombinasi unik angka dan huruf yang disebut hash value. Hash inilah yang akan digunakan untuk memverifikasi integritas dari suatu file. Maka dari itu tiap penyedia utama dari suatu berkas sumber, normalnya menyertakan MD5 Checksum sebagai sarana verifikasi file bagi pengguna akhir.

Bagaimana cara menghasilkan MD5 checksum atau memverifikasi berkas menggunakan komparasi MD5 checksum?

Langkah-langkah :

1. skenario pada linux ubuntu, akan dibuat terlebih dahulu 3 berkas dalam folder “tes” : hello1.txt hello2.txt, dan hello3.txt

linuxaja@ubuntu:~$ mkdir tes
linuxaja@ubuntu:~$ cd tes
linuxaja@ubuntu:~/tes$ touch hello1.txt hello2.txt hello3.txt
linuxaja@ubuntu:~/tes$ for f in hello1.txt hello2.txt hello3.txt; do echo -e "isi file saya" >> $f; donelinuxaja@ubuntu:~/tes$ ls
hello1.txt  hello2.txt  hello3.txt
linuxaja@ubuntu:~/tes$ cat hello2.txt
isi file saya

2. untuk generate MD5 checksum hanya bagi 1 file gunakan command dibawah :

linuxaja@ubuntu:~/tes$ md5sum hello1.txt > md5hello1.txt
linuxaja@ubuntu:~/tes$ cat md5hello1.txt
add33c5a7dabc89a9aa6b7733c532b98  hello1.txt

3. misal hendak dikirim 3 file sekaligus, generate MD5 checksum untuk keseluruhan :

linuxaja@ubuntu:~/tes$ md5sum hello1.txt hello2.txt hello3.txt > md5helloall.txt
linuxaja@ubuntu:~/tes$ cat md5helloall.txt
add33c5a7dabc89a9aa6b7733c532b98  hello1.txt
add33c5a7dabc89a9aa6b7733c532b98  hello2.txt
add33c5a7dabc89a9aa6b7733c532b98  hello3.txt

4. simulasi pertama, penerima menerima 3 file tersebut bersama MD5 checksum dalam folder “good”, dengan kasus 3 berkas yang diterima dalam keadaan sempurna.

linuxaja@ubuntu:~$ mkdir good
linuxaja@ubuntu:~$ cp /home/linuxaja/tes/{hello1.txt,hello2.txt,hello3.txt,md5helloall.txt} /home/linuxaja/good/
linuxaja@ubuntu:~$ cd good
linuxaja@ubuntu:~/good$ ls
hello1.txt  hello2.txt  hello3.txt  md5helloall.txt

5. masih dalam kasus simulasi pertama, selanjutnya ketiga berkas diverifikasi :

linuxaja@ubuntu:~/good$ md5sum -c md5helloall.txt
hello1.txt: OK
hello2.txt: OK
hello3.txt: OK

6. untuk simulasi kedua, penerima menerima 3 file tersebut bersama MD5 checksum dalam folder “bad”, dengan kasus 1 diantara 3 berkas yang diterima dalam keadaan berbeda/rusak.

linuxaja@ubuntu:~$ mkdir bad
linuxaja@ubuntu:~$ cp /home/linuxaja/tes/{hello1.txt,hello2.txt,hello3.txt,md5helloall.txt} /home/linuxaja/bad/
linuxaja@ubuntu:~$ cd bad
linuxaja@ubuntu:~/bad$ ls
hello1.txt  hello2.txt  hello3.txt  md5helloall.txt
linuxaja@ubuntu:~/bad$ echo "diubah sedikit" >> hello2.txt
linuxaja@ubuntu:~/bad$ cat hello2.txt
isi file saya
diubah sedikit

7. masih dalam kasus simulasi kedua, ketiga berkas kemudian diverifikasi :

linuxaja@ubuntu:~/bad$ md5sum -c md5helloall.txt
hello1.txt: OK
hello2.txt: FAILED
hello3.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match

Dari kasus simulasi kedua, dapat dibaca notifikasi bahwa file hello2.txt “not match” sebab telah mengalami perubahan.

Semoga bermanfaat!