Perbedaan Hashing Encoding dan Enkripsi. Assalamualaikum wr wb, setelah lebih dari satu bulan tidak menulis artikel baru dalam blog ini karena dengan berbagai kesibukan. Kali ini saya akan mengangkat tema perbedaan hashing, encoding dan enkripsi. Mungkin banyak temen-temen yang belum begitu paham atau menganggap bahwa hashing, encoding dan ekripsi merupakan hal yang sama. Tetapi yang perlu di ketahui bahwa pada ketiga hal tersebut memiliki perbedaan yang mendasar dalam cara kerjanya,
Langsung saja tanpa basa basi, saya mulai jelaskan mulai dari hashing.
Perbedaan Hashing Encoding dan Enkripsi
Hashing
Hashing merupakan metode untuk mengubah sebuah string atau data dalam sebuah kode yang ditujukan untuk merahasiakan data dan berjalan dalam 1 arah. Artinya kita tidak dapat melihat nilai atau data aslinya, kecuali dengan mencocokan data antara karakter yang sudah di hashing dengan karakter yang sudah di hashing lainnya. Terdapat beberapa algoritma populer yang sering dipakai pada hashing, seperti MD5, SHA1, dan Whirlpool.
Berikut adalah contoh menggunakan hashing dengan beberapa algoritma di PHP.
<?php echo hash('sha1', 'mari belajar pemrograman'); echo hash('md5', 'mari belajar pemrograman'); echo hash('whirlpool', 'mari belajar pemrograman'); ?>
Encoding
Encoding merupakan sebuah metode untuk merubah bentuk atau format data. Tujuan dari encoding adalah supaya data yang dimaksud dapat dipakai pada system yang lain tetapi tidak ditujukan untuk merahasiakan data. Kita dapat dengan mudah mengetahui data aslinya dengan fungsi decode nya. Beberapa contoh dari encoding adalah ASCII dan base64.
Berikut adalah contoh penggunaan encoding dan decoding dengan PHP.
<?php echo base64_encode('mari belajar pemrograman'); echo base64_decode('bWFyaSBiZWxhamFyIHBlbXJvZ3JhbWFu'); ?>
Enkripsi
Enkripsi merupakan sebuah metode untuk merahasiakan data sehingga kita tidak akan bisa membaca nilai atau data aslinya tanpa menggunakan key atau kunci. Contoh algoritmanya adalah blowfish.
Berikut adalah contoh penggunaan enkripsi dan dekripsi dengan menggunakan blowfish.
<?php function encrypt($string, $key) { $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, utf8_encode($string), MCRYPT_MODE_ECB, $iv); return $encrypted_string; } function decrypt($encrypted_string, $key) { $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $encrypted_string, MCRYPT_MODE_ECB, $iv); return $decrypted_string; } ?>
Untuk menggunakannya seperti contoh di bawah, pada parameter kedua merupakan privat key nya. Anda bisa menseting key ini sesuai dengan selera temen – temen.
<?php encrypt("mari belajar pemrograman", "blablabla"); decrypt($encrypted_string, "blablabla") ?>
Hasilnya kurang lebih seperti berikut.
Sekian pembahasan mengenai perbedaan hashing encoding dan enkripsi. Semoga setelah membaca artikel ini, anda bisa memahami perbedaan antara ketiganya. Terus belajar dan berusaha, Terimakasih.