Toolyard

Apa itu hash? MD5, SHA-1, dan SHA-256 dijelaskan

Sidik jari untuk data

Fungsi hash mengambil masukan apa pun (satu kata, satu dokumen, video 4 GB) dan mengubahnya menjadi deretan karakter pendek dengan panjang tetap, yang disebut hash, digest, atau checksum. Masukan yang sama selalu menghasilkan hash yang sama, dan perubahan sekecil apa pun menghasilkan hash yang sama sekali berbeda:

MasukanHash SHA-256
hello2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
hello!ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b

Satu huruf besar atau tanda seru mengubah setiap karakter hasilnya. Coba sendiri di Pembuat hash.

Ciri fungsi hash yang baik

  • Deterministik: masukan yang sama menghasilkan hash yang sama di komputer mana pun.
  • Satu arah: dari hash, Anda tidak bisa kembali ke masukannya.
  • Tahan tabrakan: seharusnya praktis mustahil menemukan dua masukan berbeda dengan hash yang sama.
  • Cepat dihitung untuk checksum, yang berguna, dan justru itu alasan hash cepat tidak cocok untuk kata sandi (lihat di bawah).

Hash bukan enkripsi

Enkripsi bekerja dua arah: dengan kuncinya, Anda mendapatkan kembali aslinya. Hash tidak punya kunci dan tidak bisa dibalik. Hash hanya menunjukkan apakah sesuatu cocok. Base64 lain lagi: hanya pengodean yang bisa didekode siapa saja.

Algoritma yang umum

AlgoritmaPanjangStatus
MD5128 bit (32 karakter hex)Jebol sejak 2004; hanya untuk kerusakan tidak disengaja
SHA-1160 bit (40 karakter hex)Jebol: tabrakan nyata pertama dipublikasikan pada 2017
SHA-256256 bit (64 karakter hex)Aman; pilihan standar saat ini
SHA-512512 bit (128 karakter hex)Aman; sering lebih cepat daripada SHA-256 di komputer 64-bit

Berikut kata hello dalam masing-masing:

  • MD5: 5d41402abc4b2a76b9719d911017c592
  • SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Arti "jebol" untuk MD5 dan SHA-1

Pada MD5 dan SHA-1, peneliti bisa sengaja membuat dua file berbeda dengan hash yang sama. Penyerang bisa menukar file aman dengan file berbahaya yang checksum-nya cocok, atau memalsukan dokumen yang ditandatangani. Keduanya tidak bisa dibalik, dan kerusakan tidak disengaja tetap mengubah hash, jadi checksum MD5 masih bisa mendeteksi unduhan yang terputus. Hanya saja, checksum itu tidak bisa membuktikan bahwa tidak ada yang mengutak-atik file.

SHA-256 dan SHA-512 termasuk keluarga SHA-2, yang dipublikasikan pada 2001, dan belum ada serangan praktis yang diketahui terhadap keduanya. SHA-3, distandarkan pada 2015, adalah rancangan berbeda yang siap sebagai cadangan.

Tempat hash dipakai

  • Memeriksa unduhan: pengembang memublikasikan SHA-256 file mereka; jika punya Anda cocok, filenya identik. Lihat Cara memeriksa checksum.
  • Tanda tangan digital dan sertifikat HTTPS: dokumen atau sertifikat di-hash, lalu hash-nya yang ditandatangani.
  • Git: setiap commit dan file dikenali lewat hash-nya. Git lama memakai SHA-1 dan kini juga mendukung SHA-256.
  • Bitcoin dan blockchain lain: blok-bloknya dirantai dengan SHA-256.
  • Menemukan file duplikat: dua file dengan SHA-256 yang sama adalah file yang sama.

Hash dan kata sandi

Situs seharusnya tidak pernah menyimpan kata sandi Anda, hanya hash-nya; saat login, situs meng-hash yang Anda ketik lalu membandingkannya. Namun SHA-256 bukan alat yang tepat untuk ini: terlalu cepat, sehingga penyerang dengan database yang bocor bisa mencoba miliaran tebakan per detik. Kata sandi butuh hashing lambat dengan salt yang dirancang untuk itu, seperti bcrypt, scrypt, atau Argon2. Salt adalah nilai acak yang ditambahkan ke setiap kata sandi sebelum di-hash, agar dua orang dengan kata sandi yang sama mendapat hash yang berbeda.

Coba sendiri

Pembuat hash menghitung MD5, SHA-1, SHA-256, SHA-384, dan SHA-512 dari teks atau file apa pun sekaligus, di browser Anda, dan membandingkannya dengan checksum yang dipublikasikan.

Alat dalam panduan ini

Panduan lainnya

Cara membuka file HEIC di WindowsCara memperkecil ukuran file PDFCara menghapus lokasi dari fotoCara mengambil audio dari videoCara membuat kode QR Wi-FiCara menandatangani PDFCara memeriksa checksum file (SHA-256)PNG, JPG, atau WebP: format gambar mana yang dipakai?Cara menggabungkan file PDFCara menyalin teks dari gambarCara mengubah JPG ke PDFCara mengubah PDF ke JPGCara memisahkan PDF atau mengambil halamannyaCara memutar PDF secara permanenCara menambahkan nomor halaman ke PDFCara menambahkan watermark ke PDFCara mengubah HEIC ke JPG di MacCara mengubah WebP ke JPGCara memperkecil ukuran file gambarCara mengubah video ke GIFCara mengubah WAV ke MP3Cara membuat kata sandi yang kuatCara mengubah Celsius ke FahrenheitGB atau GiB: mengapa drive Anda menampilkan ruang lebih kecilCara menghitung persentaseCara menghitung hari di antara dua tanggalApa itu timestamp Unix?Cara membandingkan dua file teksCara menghitung kata dalam dokumenCara memindai kode QR dari tangkapan layar atau gambarCara mengompres foto ke 20 KB (atau ukuran lain)Cara menghapus latar belakang fotoCara mengetes mikrofonCara memeriksa piksel mati di layarCara merekam layarCara membuat nada dering untuk iPhoneCara mengompres video agar bisa dikirimCara menghapus kata sandi dari PDFCara melindungi PDF dengan kata sandiCara mengisi formulir PDFCara mengubah PDF ke WordCara memburamkan wajah di fotoCara menghitung BMICara menghitung cicilan KPRCara menjadwalkan rapat lintas zona waktuApa itu ekspresi cron?Cara Membuat Komplemen Balik Sekuens DNACara Translasi DNA ke ProteinCara Mengonversi GenBank ke FASTACara Menemukan Situs Restriksi pada Sekuens DNACara Menyejajarkan Dua Sekuens DNA atau ProteinCara Merancang dan Memeriksa Primer PCRCara Menghitung Massa MolarCara Menyetarakan Persamaan KimiaCara Membuat Larutan dengan Molaritas TertentuCara Menghitung Pengenceran (C1V1 = C2V2)Cara Menghitung pHCara Menghitung Konsentrasi DNA dari A260Cara Menghitung Jumlah Insert untuk LigasiCara Mengonversi RPM ke g (RCF)Cara Menghitung Sel dengan HemositometerCara Memakai Papan PunnettCara Menyusun Anggaran dengan Aturan 50/30/20Metode Snowball vs Avalanche untuk Melunasi UtangBerapa Dana yang Saya Butuhkan untuk Pensiun?Cara Mengubah Gaji Menjadi Upah per JamMargin Keuntungan vs MarkupCara Menghitung PPN dan Pajak PenjualanCara Membuat FakturBerapa Harga Rumah yang Mampu Saya Beli?Cara Membaca Kode Warna ResistorCara Memilih Resistor untuk LEDCara Menghitung Jatuh Tegangan pada KabelBerapa Banyak Beton yang Saya Butuhkan?Berapa Banyak Cat yang Saya Butuhkan?Cara Menghitung SubnetAturan Angka Penting