SHA-1 Hash Generator (160-bit, Algoritma Usang)
Hasilkan hash SHA-1 di browser — output hex 40 karakter, tanpa unggah. Algoritma usang untuk sidik jari Git, cek sertifikat lama, dan audit migrasi. Data tidak pernah meninggalkan perangkat Anda.
Apa Itu SHA-1?
SHA-1 (Secure Hash Algorithm 1) adalah fungsi hash kriptografis 160-bit yang diterbitkan oleh NIST pada 1995 sebagai FIPS 180-1. Ia dirancang oleh Badan Keamanan Nasional AS untuk menggantikan SHA-0 (versi sebelumnya yang cacat, ditarik cepat pada 1993) dan merupakan algoritma hash dominan untuk tanda tangan digital, sertifikat TLS, dan penandatanganan kode sepanjang tahun 2000-an.
Riwayat keretakan: Pada 2005, tim Xiaoyun Wang menerbitkan serangan teoritis yang mengurangi ketahanan tabrakan SHA-1 dari 2^80 yang diharapkan menjadi 2^63 operasi — keretakan teoritis, belum praktis. Pada Februari 2017, Google dan CWI Amsterdam merilis serangan SHAttered, menghasilkan dua dokumen PDF berbeda dengan hash SHA-1 identik menggunakan sekitar 110 GPU-tahun komputasi. Ini adalah keretakan praktis yang definitif. NIST telah men-deprecate SHA-1 untuk tanda tangan pada 2011 (NIST SP 800-131A); vendor browser dan CA mengikuti dengan menghapus dukungan sertifikat SHA-1 pada 2016–2017.
Status saat ini: SHA-1 telah dilarang untuk semua penggunaan yang sensitif terhadap keamanan — tanda tangan digital, sidik jari sertifikat, penyimpanan kata sandi, dan penandatanganan kode. Ia tetap ada dalam format ID objek Git (hash commit), di mana digunakan untuk pengalamatan konten bukan keamanan, dan dalam checksum perangkat lunak warisan. Proyek Git menambahkan dukungan format objek SHA-256 di versi 2.29 (Oktober 2020). Semua proyek baru harus menggunakan SHA-256 atau yang lebih kuat.
Alat ini menghitung SHA-1 sepenuhnya di browser Anda menggunakan crypto.subtle.digest('SHA-1', ...) dari Web Crypto API. Output hex 40 karakter identik dengan yang dihasilkan sha1sum, openssl dgst -sha1, atau git hash-object. Tidak ada byte yang dikirim ke server mana pun.
SHA-1 vs keluarga SHA-2: SHA-1 menghasilkan 40 karakter hex (160 bit). SHA-256 menghasilkan 64 karakter hex (256 bit) dan tidak memiliki kelemahan yang diketahui. MD5 menghasilkan 32 karakter hex (128 bit) dan diretakkan lebih awal (2004). Untuk pekerjaan hashing baru, SHA-256 adalah pilihan standar.
// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-1', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work. Contoh SHA-1
Cari sidik jari commit Git
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 author A Dev <dev@example.com> 1716854400 +0000 committer A Dev <dev@example.com> 1716854400 +0000 Initial commit
Git menyimpan setiap commit sebagai blob yang SHA-1-nya dihitung dari header commit plus isi dalam format persis ini. String hex 40 karakter yang ditampilkan `git log` adalah sidik jari SHA-1 langsung. Tempel teks objek commit mentah di sini untuk mereproduksi hash yang sama — berguna saat men-debug output `git cat-file` atau memverifikasi repositori cermin tidak memanipulasi riwayat. Catatan: Git 2.29+ mendukung mode SHA-256 (git init --object-format=sha256), dan GitHub akhirnya akan bermigrasi. Untuk repositori baru, gunakan mode SHA-256.
Verifikasi sidik jari sertifikat TLS lama
-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKlL... -----END CERTIFICATE-----
Sebelum 2017, browser menampilkan sidik jari sertifikat sebagai string hex SHA-1 40 karakter. CA berhenti menerbitkan sertifikat bertanda tangan SHA-1 pada Januari 2016, dan semua browser utama menghapus dukungan pada awal 2017. Jika Anda mengaudit sertifikat internal lama atau memvalidasi perangkat IoT warisan, tempel badan PEM di sini untuk mereproduksi sidik jari SHA-1. Alur kerja modern menggunakan sidik jari SHA-256 64-karakter.
Verifikasi unduhan perangkat lunak lama
node-v0.12.7-linux-x64.tar.gz
Beberapa arsip perangkat lunak lama masih hanya menerbitkan checksum SHA-1 bersama unduhan. Meski ini menyediakan deteksi korupsi dasar (bukan deteksi manipulasi), masih lebih baik daripada tidak ada checksum sama sekali. Gunakan tab File untuk memasukkan arsip, hitung SHA-1, lalu bandingkan dengan nilai yang diposting penerbit. Jika SHA-256 juga tersedia, selalu gunakan itu. Untuk arsip baru, desak checksum SHA-256 atau SHA-512.
Demonstrasi tabrakan SHAttered
(Tempel isi file shattered-1.pdf milik Google/CWI melalui tab File)
Pada Februari 2017 Google dan CWI Amsterdam merilis serangan SHAttered — tabrakan SHA-1 praktis pertama. Mereka menghasilkan dua file PDF berbeda (shattered-1.pdf dan shattered-2.pdf) yang menghasilkan nilai SHA-1 identik: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Memasukkan salah satu PDF ke tab File alat ini menghasilkan hash persis tersebut, membuktikan tabrakan nyata. Ini adalah bukti paling jelas mengapa SHA-1 telah dipecahkan. Gunakan SHA-256 untuk semua alur kerja integritas dokumen baru.
Cara Membuat Hash SHA-1
- 1
Tempel teks atau masukkan file
Pilih tab Teks dan tempel string apa pun — pesan commit, badan sertifikat, atau input checksum warisan — ke area input. Hash SHA-1 diperbarui saat Anda mengetik. Untuk file, beralih ke tab File dan seret file apa pun ke dropzone; browser meng-hash-nya secara lokal tanpa unggahan.
- 2
Salin hash 40 karakter
Klik tombol Salin di samping output hash. String hex lowercase 40 karakter penuh masuk ke clipboard Anda. Gunakan toggle Huruf Besar jika sistem warisan Anda memerlukan hex uppercase — beberapa alat lama dan Windows API default ke uppercase.
- 3
Bandingkan dengan sidik jari warisan
Beralih ke tab Bandingkan dan tempel dua hash SHA-1 secara berdampingan untuk mengonfirmasi apakah cocok. Berguna untuk memvalidasi checksum penerbit warisan, mengaudit repositori Git yang dicerminkan, atau memeriksa sidik jari sertifikat TLS lama dari dokumen sebelum adopsi SHA-256.
Detail Teknis
- Algoritma: konstruksi Merkle-Damgård, 80 ronde
- SHA-1 memproses input dalam blok 512-bit (64-byte), menerapkan 80 ronde operasi bitwise yang dikelompokkan dalam empat tahap 20-ronde, masing-masing dengan fungsi logika berbeda (Ch, Parity, Maj, Parity) dan konstanta aditif. Status hash awal adalah lima kata 32-bit (A–E), dan hash akhir adalah gabungan kata-kata tersebut setelah blok terakhir. Implementasi didefinisikan dalam FIPS 180-1 (1995), digantikan oleh FIPS 180-4 (2015).
- Output: 160 bit, 40 karakter hex
- Selalu persis 40 karakter heksadesimal lowercase (160 bit = 20 byte, dikodekan sebagai 2 karakter hex per byte). Panjang output tetap terlepas dari ukuran input. Dibandingkan dengan SHA-256 yang 64 karakter, output yang lebih pendek memberikan bit ketahanan tabrakan yang lebih sedikit — faktor kunci mengapa SHA-1 diretakkan sebelum SHA-256.
- Performa: cepat tetapi itu bagian dari masalahnya
- SHA-1 cepat — biasanya 400–700 MB/s di browser menggunakan Web Crypto. Bagi penyerang, kecepatan ini adalah aset: klaster GPU modern dapat menghitung miliaran hash SHA-1 per detik, mempercepat pencarian brute-force dan tabrakan. Kecepatan inilah mengapa SHA-1 (seperti MD5) tidak boleh pernah digunakan untuk penyimpanan kata sandi — gunakan bcrypt, scrypt, atau Argon2 sebagai gantinya.
- Standar: FIPS 180-1 (1995) — dilarang dalam konteks FIPS 180-4
- SHA-1 distandarkan dalam FIPS 180-1 (1995), menggantikan SHA-0 yang cacat. NIST men-deprecate SHA-1 untuk tanda tangan digital dalam NIST SP 800-131A (2011) dan dalam FIPS 186-5 (2023) secara resmi melarangnya untuk semua pembuatan tanda tangan digital. RFC 6194 (2011) mendokumentasikan pertimbangan keamanan yang diketahui. W3C WebCrypto API masih menyertakan SHA-1 untuk alasan interoperabilitas warisan, inilah cara alat browser ini dapat menghitungnya.
Praktik Terbaik
- Jangan pernah gunakan SHA-1 untuk operasi yang sensitif terhadap keamanan
- SHA-1 telah dilarang untuk tanda tangan digital, sertifikat TLS, penandatanganan kode, penyimpanan kata sandi, dan alur kerja apa pun di mana ketahanan tabrakan penting. Serangan SHAttered 2017 mendemonstrasikan tabrakan praktis. Untuk semua penggunaan keamanan, migrasikan ke SHA-256 atau SHA-3. Perbedaan biaya tidak signifikan pada hardware modern — SHA-256 dipercepat hardware di semua CPU saat ini.
- SHA-1 untuk pencarian sidik jari warisan dapat diterima
- Jika Anda perlu memverifikasi checksum file pra-2017, mencari ID commit Git, atau memeriksa sidik jari sertifikat lama untuk tujuan audit, SHA-1 adalah tepat. Hash itu sendiri tidak digunakan untuk membuat keputusan kepercayaan — Anda hanya mereproduksi sidik jari yang diketahui untuk referensi silang. Dokumentasikan ini secara eksplisit dalam log audit Anda: 'SHA-1 digunakan hanya untuk referensi warisan, bukan untuk validasi keamanan.'
- Selalu hash byte UTF-8, bukan poin kode Unicode
- SHA-1, seperti semua algoritma hash, beroperasi pada byte, bukan karakter. String yang sama dikodekan sebagai UTF-8 vs UTF-16 menghasilkan hash yang berbeda. Alat ini selalu mengkodekan input sebagai UTF-8 tanpa BOM sebelum hashing. Jika Anda perlu mencocokkan sistem yang menggunakan encoding berbeda (Windows UTF-16-LE, Latin-1), Anda harus melakukan pre-encode input secara eksternal sebelum membandingkan hash.
- Gunakan perbandingan constant-time saat memverifikasi hash dalam kode
- Jika Anda membandingkan dua hash SHA-1 dalam kode, gunakan pemeriksaan kesetaraan constant-time —
crypto.timingSafeEqual()di Node.js,hmac.compare_digest()di Python — daripada kesetaraan string biasa (=== atau ==). Perbandingan naif membocorkan informasi timing yang secara teoritis memungkinkan penyerang merekonstruksi hash yang diharapkan byte-per-byte. Ini adalah langkah defense-in-depth bahkan untuk verifikasi SHA-1 warisan.
FAQ SHA-1
Apakah SHA-1 masih aman digunakan?
Mengapa Git masih menggunakan SHA-1?
--object-format=sha256. GitHub dan forge besar secara bertahap meluncurkan mode SHA-256. Repositori yang ada dapat dikonversi, tetapi migrasinya kompleks karena miliaran ID commit yang ada. Haruskah saya bermigrasi dari SHA-1 ke SHA-256?
Apa itu serangan SHAttered?
Apakah tabrakan SHA-1 bisa terjadi secara tidak sengaja?
Apakah SHA-1 aman untuk penggunaan non-keamanan seperti checksum?
Seberapa panjang hash SHA-1?
Apakah input saya dikirim ke server mana pun?
crypto.subtle.digest('SHA-1', data)). Buka DevTools → tab Network saat melakukan hashing — Anda akan melihat nol permintaan keluar. File yang Anda masukkan dibaca melalui FileReader API dan di-hash secara lokal; byte tidak pernah meninggalkan mesin Anda. Jaminan privasi yang sama berlaku untuk generator SHA-256. Mengapa output SHA-1 saya berbeda dari sha1sum di baris perintah?
echo 'hello' | sha1sum menyertakan baris baru (\n) setelah 'hello', sehingga ia meng-hash 'hello\n' bukan 'hello'. Gunakan echo -n 'hello' | sha1sum untuk menghapusnya. Penyebab umum lainnya: akhiran baris Windows (\r\n vs \n), UTF-8 BOM di awal file, atau perbedaan encoding (UTF-8 vs Latin-1). Alat ini mengkodekan input sebagai UTF-8 tanpa BOM sebelum hashing. Alat Terkait
Lihat semua alat →JWT Decoder
Alat Keamanan
Dekode token JWT online dengan dekoder JWT gratis kami. Periksa header, payload, tanda tangan, kedaluwarsa, dan klaim secara instan. 100% browser — token Anda tidak meninggalkan perangkat. Tanpa pendaftaran, tanpa pelacakan.
MD5 Hash Generator & Alat Checksum File
Alat Keamanan
Hasilkan hash MD5, SHA-256, SHA-1 & SHA-512 secara online gratis. Hash teks atau file di browser Anda, verifikasi checksum dan salin hasil. Tanpa pendaftaran.
Generator Kata Sandi Acak Online — Kuat, Aman & Gratis
Alat Keamanan
Buat kata sandi acak yang kuat secara instan — gratis, tanpa pendaftaran, 100% di browser. Sesuaikan panjang & karakter, batch hingga 50 dengan analisis entropi.
SHA-256 Hash Generator & Alat Checksum
Alat Keamanan
Hasilkan hash SHA-256 online gratis. Hash teks atau file di browser Anda, verifikasi checksum, dan salin output hex 64 karakter. Tanpa pendaftaran; data tidak pernah meninggalkan halaman.
SHA-3 Hash Generator (Keccak SHA3-256 NIST)
Alat Keamanan
Hasilkan hash SHA-3 online gratis. Konstruksi sponge NIST FIPS 202 — standar pasca-SHA-2. Output SHA3-256 dalam 64 karakter hex. Hanya browser melalui js-sha3 yang di-lazy-load; tanpa unggahan.
SHA-384 Hash Generator (Hash Suite B TLS)
Alat Keamanan
Hasilkan hash SHA-384 online — output hex 96 karakter, kebal ekstensi panjang, sesuai NSA Suite B. Dipasangkan dengan AES-256-GCM di TLS. Semua hashing berjalan di browser Anda melalui Web Crypto API.