Hashing
Penjelasannya :
Hashing adalah teknik yang sangat penting dalam struktur data dan telah menerima perhatian besar dari banyak ilmuwan komputer terkenal. Pandangan dan kontribusi mereka membantu membentuk cara kita memahami dan menerapkan hashing dalam berbagai aplikasi komputasi. Dengan pemahaman yang mendalam tentang prinsip-prinsip dasar hashing dan metode penanganan tabrakan, kita dapat merancang sistem yang lebih efisien dan andal. Contoh hashing dalam kehidupan sehari-hari yang saya buat seperti "Kata Sandi".
Contoh Pemrograman Hashing
Program di atas melakukan seperti :
- Menerima kata sandi sebegai input.
- Mengubah kata sandi menjadi bytes menggunakan encoding UTF-8.
- Membuat objek hash SHA-256.
- Mengupdate objek hash dengan bytes dari kata sandi.
- Menghasilkan representasi heksadesimal darii hash.
- mengembalikan hasil hash.
Berikut adalah penjelasan tentang bagaimana hashing kata sandi bekerja tanpa menunjukkan programnya:
1. Import Library Hashing:
Pertama, library yang menyediakan fungsi-fungsi hashing perlu diimpor. Dalam Python, library tersebut adalah `hashlib`.
2. Definisi Fungsi Hashing:
Buat fungsi yang menerima kata sandi sebagai input. Fungsi ini akan mengubah kata sandi menjadi bentuk hash menggunakan algoritma hashing, dalam hal ini SHA-256.
3. Konversi Kata Sandi ke Bytes:
Kata sandi yang diberikan dalam bentuk string perlu diubah menjadi bytes. Ini karena fungsi hashing bekerja dengan data dalam bentuk bytes. Konversi ini dilakukan menggunakan encoding UTF-8.
4. Buat Objek Hash:
Buat objek hash menggunakan algoritma yang dipilih, yaitu SHA-256. Objek ini akan menangani proses hashing.
5. Update Objek Hash dengan Data Bytes:
Masukkan data bytes dari kata sandi ke dalam objek hash. Proses ini mengubah data asli menjadi bentuk hash.
6. Dapatkan Representasi Hexadecimal:
Setelah proses hashing selesai, hasilnya diambil dalam bentuk representasi heksadesimal. Ini adalah string yang terdiri dari karakter 0-9 dan a-f, yang mewakili nilai hash dari data asli.
7. Kembalikan Nilai Hash:
Fungsi mengembalikan nilai hash dalam bentuk string heksadesimal. Ini adalah representasi unik dari kata sandi asli yang tidak dapat dikembalikan ke bentuk aslinya (irreversible).
8. Penggunaan Fungsi:
Dalam aplikasi nyata, fungsi hashing ini dipanggil dengan kata sandi pengguna sebagai input. Hasil hash kemudian disimpan di database sebagai pengganti kata sandi asli.
9. Keamanan Tambahan:
Dalam praktik yang lebih aman, salt (nilai acak) sering ditambahkan ke kata sandi sebelum hashing untuk memastikan bahwa hash untuk kata sandi yang sama berbeda setiap kali dan mencegah serangan dengan tabel rainbow. Dan output yang di hasilkan seperti gambar di bawah ini.
Komentar
Posting Komentar