Pelajari hash 64 karakter hashlib.sha256, 3 sifat determinisme / avalanche / satu arah, deteksi tampering, dan alasan password pakai bcrypt / argon2 lewat contoh.
hashlib adalah modul standard library yang menghitung nilai hash dengan panjang tetap dari urutan byte apa pun. Algoritma utama SHA-256 mengembalikan string hex 64 karakter = 256-bit, dan banyak dipakai di mana pun kamu ingin memastikan "apakah isinya sama?" — integrity check file, signing API, ID commit Git, dan sejenisnya.
Tidak seperti pickle dan base64, hashlib adalah konversi satu arah — kamu tidak bisa memulihkan input dari output. Ingat bahwa ini bukan untuk "simpan dan pulihkan" tetapi untuk "beritahu saja apakah dua input sama atau berbeda".
pickle / base64 vs hashlibpickle / base64 adalah konversi dua arah yang reversible dipakai untuk "simpan dan pulihkan" dan "konversi transport". hashlib adalah konversi satu arah yang non-reversible untuk situasi di mana kamu hanya perlu menentukan apakah dua input sama atau berbeda. Use case-nya berbeda mendasar — jangan dicampur.
SHA-256 — Hash Hex 64 Karakter dengan Tiga Properti
Empat kegunaan tipikal hashlibMemverifikasi integritas download / ID commit Git / menggenerasi cache key / signing request API (HMAC). Benang merahnya adalah menentukan "apakah isinya sama?" via hash dengan panjang tetap — tidak reversible, jadi tidak bisa menggantikan penyimpanan.Tiga properti fungsi hashDeterminisme (input sama → output sama), avalanche effect (satu bit beda → output benar-benar berbeda), dan one-way (tidak bisa memulihkan input dari output). SHA-256 selalu mengeluarkan string hex 64 karakter, dipakai untuk deteksi tampering dan integrity check.
Method / Algoritma
Panjang bit
Kegunaan
hashlib.sha256(b)
256 bit (64 karakter hex)
integritas file / signing API (direkomendasikan)
hashlib.sha512(b)
512 bit (128 karakter hex)
ketika kamu ingin hash yang lebih panjang
hashlib.md5(b)
128 bit (32 karakter hex)
collision attack ada — jangan dipakai untuk kode baru
.hexdigest()
—
dapatkan hash sebagai string hex
.digest()
—
dapatkan hash sebagai bytes mentah
Jangan pakai hashlib saja untuk menyimpan password
Jika kamu menyimpan password pengguna dengan hanya hashing dengan sha256 atau sejenisnya, mereka menjadi rentan terhadap serangan lookup terkomputasi sebelumnya (rainbow table). Kamu dapat bertahan dari ini dengan library khusus yang membangun salt + key stretching — bcrypt / argon2 / passlib. hashlib cocok untuk skenario "apakah input sama?" seperti integrity check file dan signing API.
Hitung SHA-256 dari "Hello, Python!" dan konfirmasi outputnya selalu berupa string hex 64 karakter.
① Import hashlib dan konversi string "Hello, Python!" ke bytes dengan UTF-8.
② Dapatkan SHA-256 dari bytes tersebut sebagai string hex dengan hashlib.sha256(...).hexdigest().
③ Cetak panjang hash sebagai Panjang SHA-256: ◯ (seharusnya 64).
Python Editor
Jalankan kode untuk melihat output
Verifikasi Determinisme dan Avalanche Effect
Di antara sifat-sifat fungsi hash, "input sama → output sama" (determinisme) dan "satu karakter beda → output benar-benar berbeda" (avalanche effect) dapat dikonfirmasi dengan membandingkan dua input yang sedikit berbeda. Kedua properti ini lah yang membuat hash berguna untuk integrity check file dan deteksi tampering.
Bandingkan hash dari Latihan 1 dengan nilai yang dihitung ulang dan nilai dengan karakter terakhir diubah.
① Ulangi langkah Latihan 1 untuk meletakkan SHA-256 dari "Hello, Python!" ke sha.
② Hash input yang sama lagi dan cek apakah sama dengan sha — cetak sebagai Sama saat hitung ulang: True / False.
③ Hitung hash dari bytes dengan ! diubah menjadi . di akhir dan konfirmasi berbeda dari sha — cetak sebagai Beda setelah 1 karakter: True / False.
Python Editor
Jalankan kode untuk melihat output
QUIZ
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 1Berapa panjang string yang dikembalikan oleh hexdigest() dari SHA-256?
Soal 2Apa yang terjadi pada SHA-256 dari input yang sama?
Soal 3Bisakah kamu memulihkan input asli dari hash?
Soal 4Apa pilihan terbaik untuk menyimpan password pengguna?