Langsung ke konten
LeedyBox
Dukung

Generator Hash: MD5, SHA-1, SHA-256, SHA-512 & HMAC

Hitung hash MD5, SHA-1, SHA-256, SHA-384, dan SHA-512 atau HMAC dari teks atau file di browser, lalu bandingkan dengan checksum yang diharapkan.

Input

Teks di-hash persis seperti yang dimasukkan, termasuk spasi dan pergantian baris. Pergantian baris di kotak ini di-hash sebagai LF.

Hasil

Masukkan teks atau pilih file untuk melihat hash-nya.

MD5
SHA-1
SHA-256
SHA-384
SHA-512

Nilai hex dibandingkan tanpa memperhatikan huruf besar atau kecil; nilai Base64 harus sama persis.

Catatan

  • MD5 dan SHA-1 memiliki serangan tabrakan (collision) yang sudah diketahui dan tidak boleh digunakan untuk keperluan keamanan. Gunakan hanya untuk pemeriksaan non-keamanan, seperti membandingkan unduhan dengan checksum yang dipublikasikan.
  • Hash bukan enkripsi. Alat ini tidak dapat mengubah hash kembali menjadi teks atau file aslinya.
  • Jangan gunakan hash biasa untuk menyimpan kata sandi. Gunakan skema hashing kata sandi khusus seperti Argon2, scrypt, atau bcrypt.
  • Hash dihitung dari byte, sehingga teks yang sama dengan akhir baris berbeda (CRLF atau LF), encoding karakter berbeda, atau spasi tambahan menghasilkan hash yang berbeda.
  • HMAC menggabungkan hash dengan kunci rahasia. HMAC-MD5 tidak disediakan di sini.
  • Teks dan file diproses di browser Anda dan tidak dikirim ke LeedyBox. File yang sangat besar bisa lambat diproses, karena seluruh file dibaca ke memori.

Periksa hasil sebelum digunakan. Alat ini disediakan apa adanya tanpa jaminan, dan hasilnya bisa tidak lengkap atau keliru. Ketentuan Layanan

MD5 dan SHA-1 tidak cocok untuk keperluan keamanan. Hash bukan enkripsi, dan checksum yang cocok hanya menunjukkan bahwa datanya sama dengan data yang dipakai untuk membuat checksum tersebut.

Cara menggunakan

  1. Di "Input", pilih "Teks" untuk menghitung hash teks yang Anda ketik atau tempel, atau "File" untuk menghitung hash file dari perangkat Anda.
  2. Untuk file, pilih file atau letakkan di kotak, lalu tekan "Hitung hash". Jika setelah itu Anda mengubah "Mode HMAC" atau kuncinya, tekan tombol itu lagi.
  3. Pilih "Format output": hex huruf kecil, hex huruf besar, atau Base64. Mengganti format hanya mengubah cara penulisan hasil yang sama, jadi tidak ada yang dihitung ulang.
  4. Untuk menghitung HMAC alih-alih hash biasa, centang "Mode HMAC" dan masukkan kunci rahasia di kolom yang muncul. HMAC-MD5 tidak disediakan, sehingga baris MD5 menampilkan "Tidak tersedia untuk HMAC".
  5. Untuk memverifikasi unduhan, tempel nilai yang dipublikasikan ke "Checksum yang diharapkan (opsional)". Nilai itu dibandingkan dengan semua hasil yang dihitung, dan baris yang cocok ditandai "Cocok".

Pertanyaan umum

Mengapa hash saya berbeda dengan hasil sha256sum atau alat lain?

Kotak teks menghitung hash dari karakter persis seperti yang Anda masukkan, jadi perbedaan kecil pun mengubah hasilnya. Penyebab umum adalah pergantian baris di akhir: echo hello | sha256sum menghitung hash "hello" ditambah satu pergantian baris, sehingga SHA-256-nya berbeda dari "hello" saja, sedangkan printf hello | sha256sum tidak menambahkannya. Karakter yang tampak sama juga bisa disimpan secara berbeda, misalnya é sebagai satu code point atau sebagai e yang diikuti aksen gabung. Untuk menghitung hash dari byte file apa adanya, gunakan "File", bukan menempel isinya, karena kotak teks meng-encode teks sebagai UTF-8 dan menghitung pergantian baris sebagai LF.

Checksum yang dipublikasikan sudah benar. Mengapa hasilnya tidak cocok?

Tempel nilai hash-nya saja. Spasi, tab, dan pergantian baris dihapus sebelum perbandingan, jadi jika Anda menempel satu baris utuh dari file checksum, nama file ikut menjadi bagian dari nilai, dan awalan seperti sha256: juga membuatnya tidak cocok. Perbandingan dilakukan dengan semua algoritma yang dihitung, jadi Anda tidak perlu memilih salah satunya. Jika Anda sudah menempel nilainya saja dan hasilnya tetap tidak cocok, pastikan "Mode HMAC" nonaktif dan checksum tersebut memakai MD5, SHA-1, SHA-256, SHA-384, atau SHA-512; algoritma lain, seperti SHA-3 atau BLAKE2, tidak dihitung di sini. Jika semua itu sudah benar, kemungkinan besar file berbeda dari file yang dibuatkan checksum, misalnya versi lain atau unduhan yang tidak lengkap.

Apa artinya jika hasil diawali e3b0c442 atau d41d8cd9?

Itu adalah hash dari input kosong (0 byte) yang ditulis dalam hex: nilai SHA-256 diawali e3b0c442 dan diakhiri b855, sedangkan nilai MD5 adalah d41d8cd98f00b204e9800998ecf8427e. Jika "Mode HMAC" nonaktif, nilai ini muncul setelah Anda mengosongkan kotak teks atau untuk file berukuran 0 byte. Jika program Anda menghasilkan salah satu nilai ini untuk data yang seharusnya tidak kosong, kemungkinan besar program itu menghitung hash dari string kosong atau file kosong.

Bisakah saya memeriksa tanda tangan webhook atau API dengan mode HMAC?

Sering kali bisa, jika tanda tangan tersebut berupa HMAC dengan SHA-1, SHA-256, SHA-384, atau SHA-512; HMAC-MD5 tidak disediakan. Centang "Mode HMAC", masukkan kunci rahasia penandatanganan (signing secret), gunakan body permintaan sebagai input, lalu tempel tanda tangan ke "Checksum yang diharapkan (opsional)" tanpa awalan seperti sha256=; tanda tangan hex dan Base64 sama-sama dikenali. Input harus berisi byte yang sama dengan yang ditandatangani, jadi body JSON yang diformat ulang tidak akan cocok, dan body dengan pergantian baris CRLF perlu disimpan sebagai file lalu di-hash dengan "File". Banyak layanan menandatangani lebih dari sekadar body, misalnya stempel waktu dan pemisah yang ditempatkan di depannya, jadi periksa dokumentasi layanan untuk mengetahui secara pasti apa yang ditandatangani.

Kunci rahasia saya berbentuk hex atau Base64. Bisakah dipakai?

Hanya jika layanan memakai teks kunci apa adanya. Kolom "Kunci rahasia (UTF-8)" memakai byte UTF-8 dari karakter yang Anda masukkan dan tidak mendekode hex atau Base64, jadi jika layanan mendekode kuncinya sebelum menandatangani, HMAC yang dihitung di sini tidak akan cocok. Spasi di awal atau akhir kolom juga dihitung sebagai bagian dari kunci.

Bagaimana cara membuat hash Subresource Integrity (SRI)?

Pilih "File", pilih file skrip atau stylesheet, pastikan "Mode HMAC" nonaktif, tekan "Hitung hash", lalu atur "Format output" ke "Base64". Tambahkan sha384- di depan nilai SHA-384 untuk mendapatkan nilai atribut integrity; sha256- dan sha512- bekerja dengan cara yang sama. File harus sama byte demi byte dengan file yang diunduh browser; jika tidak, browser menolak menggunakannya. File yang dimuat dari origin lain juga memerlukan atribut crossorigin, dan servernya harus mengizinkan CORS.

Apa perbedaan output hex dan Base64?

Keduanya mewakili digest yang sama. Hex memakai dua karakter per byte, yaitu 64 karakter untuk SHA-256, dan merupakan format yang ditampilkan alat seperti sha256sum; Base64 lebih pendek, 44 karakter untuk SHA-256. Output Base64 memakai alfabet standar dengan +, /, dan padding =, bukan varian URL-safe dengan - dan _, jadi nilai dalam varian URL-safe, atau nilai yang padding =-nya dihapus, bisa tidak cocok saat dibandingkan.