AsiaQuest Indonesia
AsiaQuest Indonesia AsiaQuest Indonesia

Berita / Blog

The No.1 WEB development in Indonesia. AsiaQuest Indonesia will share news, events, and blog of WEB utilization in Indonesia. We post in English, Indonesia, and Japan.

News06 Feb 2023

Hashing dalam Kriptografi, Algoritma Hashing dan Prosesnya

Tipe kriptografi yang umum dikenal ada 3, yaitu kriptografi simetris, asimetris, dan hash. Masing-masing tipe punya kegunaan, kelebihan, dan kekurangan masing-masing. Kali ini, secara khusus kami akan mengulas tentang tipe kriptografi yang ke tiga, yaitu hash.

Hashing adalah salah satu tipe kriptografi. Hashing adalah proses untuk mengubah data yang berukuran besar menjadi nilai yang lebih kecil dan unik, yang sering disebut sebagai ‘hash value’ atau ‘digest’.

Kegunaan Hashing

Secara khusus, hash berguna untuk melindungi data yang tersimpan, mencari data, serta keperluan verifikasi integritas data.

(1) Menyimpan Password

Hash value dari password dapat disimpan di database sebagai representasi dari password asli. Dengan begini, password asli tidak disimpan dan akan lebih aman dari serangan siber.

(2) Pencocokan Duplikat

Hash value dapat digunakan untuk mencari data duplikat dengan cepat. Caranya adalah dengan membandingkan nilai hash yang sama.

(3) Data Integrity

Hash value dapat digunakan untuk memverifikasi integritas data dengan menghasilkan hash value dari data asli dan membandingkannya dengan hash value yang disimpan sebelumnya.

Algoritma Hashing yang Populer

Dalam proses hashing, digunakan algoritma hashing untuk mengubah data asli menjadi sebuah hash value. Ada beberapa algoritma hashing yang populer dan beberapa diantaranya adalah berikut ini.

(1) MD5 (Message-Digest Algorithm 5)

MD5 (Message-Digest Algorithm 5) adalah algoritma hashing yang digunakan untuk membuat hash value dari data yang berukuran 128-bit. Algoritma ini digunakan untuk memverifikasi integritas data dan digunakan dalam aplikasi seperti sistem otentikasi password.

(2) SHA-1 (Secure Hash Algorithm 1)

SHA-1 (Secure Hash Algorithm 1) adalah algoritma hashing yang digunakan untuk membuat hash value dari data yang berukuran 160-bit. Algoritma ini digunakan untuk memverifikasi integritas data dan digunakan dalam aplikasi seperti sertifikat digital dan otentikasi password.

(3) SHA-256 (Secure Hash Algorithm 256-bit)

SHA-256 (Secure Hash Algorithm 256-bit) adalah algoritma hashing yang digunakan untuk membuat hash value dari data yang berukuran 256-bit. Algoritma ini digunakan untuk memverifikasi integritas data dan digunakan dalam aplikasi seperti sertifikat digital dan otentikasi password. Algoritma ini dianggap lebih aman dari SHA-1 dan MD5.

(4) SHA-3 (Secure Hash Algorithm 3)

SHA-3 (Secure Hash Algorithm 3) adalah algoritma hashing yang digunakan untuk membuat hash value dari data yang berukuran variable. Algoritma ini digunakan untuk memverifikasi integritas data dan digunakan dalam aplikasi seperti sertifikat digital dan otentikasi password. Algoritma ini dianggap lebih aman dari SHA-256 dan SHA-1.

(5) Bcrypt, Scrypt, Argon2

Bcrypt, Scrypt, Argon2 adalah algoritma hashing yang digunakan untuk keperluan password hashing. Algoritma ini dianggap lebih aman dibandingkan dengan algoritma seperti MD5 dan SHA-1 karena memiliki mekanisme untuk mencegah serangan brute force dan dictionary attack.

Itu hanyalah beberapa contoh dari algoritma hashing yang populer digunakan. Ada banyak algoritma lain yang digunakan dalam berbagai aplikasi. Ada baiknya untuk memperhatikan karakteristik dari setiap algoritma sebelum memilih yang akan digunakan.

Proses Hashing

Secara umum, proses hashing dapat diuraikan sebagai berikut:

  1. Pilih algoritma hashing yang akan digunakan. Beberapa contoh algoritma yang populer adalah MD5, SHA-256, dan Bcrypt.
  2. Masukkan data yang akan di-hash ke dalam algoritma. Data tersebut bisa berupa teks, file, atau bahkan gambar.
  3. Algoritma akan mengubah data tersebut menjadi hash value yang unik. Hash value ini akan memiliki ukuran yang lebih kecil dari data asli dan tidak dapat diubah kembali menjadi data asli.
  4. Hash value yang dihasilkan dapat digunakan untuk berbagai keperluan seperti penyimpanan password, pencocokan duplikat, atau verifikasi integritas data.
  5. Jika data diinputkan kembali, algoritma akan menghasilkan nilai hash yang sama seperti sebelumnya. Ini digunakan untuk memverifikasi data yang asli atau tidak.

Ada beberapa kelebihan dari proses hashing, diantaranya:

  1. Keamanan: Hash value yang dihasilkan tidak dapat diubah kembali menjadi data asli. Ini membuat data yang dihash aman dari serangan peretas yang ingin mengetahui data asli.
  2. Integritas Data: Hash value dapat digunakan untuk memverifikasi integritas data dengan menghasilkan hash value dari data asli dan membandingkannya dengan hash value yang disimpan sebelumnya.
  3. Pencocokan Duplikat: Hash value dapat digunakan untuk mencari data duplikat dengan cepat dengan membandingkan nilai hash yang sama.
  4. Penyimpanan Password: Hash value dari password dapat disimpan di database sebagai representasi dari password asli, sehingga password asli tidak perlu disimpan dan dapat tetap aman dari serangan.
  5. Proses cepat: Proses hashing cepat dilakukan dan membutuhkan waktu yang relatif singkat untuk menghasilkan nilai hash.
  6. Ukuran data yang kecil: Hasil dari proses hashing yaitu hash value memiliki ukuran yang lebih kecil dari data asli, sehingga dapat digunakan untuk aplikasi yang membutuhkan storage yang kecil.

Ada beberapa kekurangan dari proses hashing, diantaranya:

  1. Hash Collision: Algoritma hashing memiliki kemungkinan hash collision, dimana 2 data yang berbeda akan dihasilkan dari nilai hash yang sama. Ini dapat menyebabkan masalah ketika mencari atau memverifikasi data.
  2. Tidak dapat diubah kembali: Setelah data di-hash, ia tidak dapat diubah kembali menjadi data asli. Ini dapat menyebabkan masalah ketika data yang di-hash salah atau rusak.
  3. Keamanan yang terbatas: Meskipun proses hashing dapat digunakan untuk meningkatkan keamanan data, namun tidak dapat menjamin keamanan data dari serangan yang dilakukan dengan teknik yang lebih canggih.
  4. Hashing tidak dapat digunakan untuk kompresi data : Hashing hanya digunakan untuk mengubah data menjadi sebuah nilai unik yang lebih kecil, tidak digunakan untuk mengompresi data.
  5. Proses hashing memerlukan banyak resource : Proses hashing memerlukan resource yang cukup besar, seperti memory dan CPU.
  6. Algoritma hashing yang kurang aman : Beberapa algoritma hashing yang digunakan seperti MD5 dan SHA-1 dinilai tidak aman lagi karena sudah ditemukan kerentanan pada algoritma tersebut.

Itu hanyalah beberapa kekurangan dari proses hashing. Namun, dengan menggunakan algoritma hashing yang kuat dan diperbarui secara terus menerus, masalah-masalah tersebut dapat dikurangi.

Referensi:

  1. Mengenal Apa Itu Hash, Fungsi, Jenis, dan Cara Kerjanya
  2. What Is The Best Algorithm (Bcrypt, Scrypt, SHA512, Argon2) For Password Hashing In Node.js? [2] | by Mohammad Yaser Ahmadi
  3. What is hashing and how does it work?.
hash
DX News
Tags
Load More

Event
Calendar

Mar
12
2020

Kintone Seminar, 12 Maret 2020
Pemanfaatan IT Untuk Efesiensi Kerja Integrasi dan Pembuatan Aplikasi tanpa…

Apr
15
2020

Seminar WFH Lebih Mudah dan Efisien dengan…
Dalam WFH banyak sekali kesulitan yang kita hadapi, seperti informasi…

Back To Top