Hash
Jana hash SHA-1, SHA-256, SHA-384, SHA-512
MD5 tidak disediakan — ia telah rosak secara kriptografi dan tidak tersedia dalam API SubtleCrypto pelayar. Gunakan SHA-256 atau yang lebih kuat.
Apakah hash kriptografi?
Fungsi hash kriptografi menukarkan sebarang input — satu aksara, dokumen 5 halaman — menjadi rentetan panjang tetap digit hex. SHA-256 sentiasa menghasilkan 64 aksara hex; SHA-512, 128. Dua sifat penting: input yang sama sentiasa menghasilkan hash yang sama, dan adalah tidak mungkin secara pengiraan untuk mencari dua input berbeza dengan hash yang sama (rintangan perlanggaran).
Hash digunakan untuk pemeriksaan integriti fail (memuat turun fail? bandingkan SHA-256 dengan nilai yang diterbitkan), penyimpanan kata laluan (pelayan menyimpan hash, bukan kata laluan), tandatangan HMAC, dan penyimpanan beralamat kandungan (Git menggunakan SHA-1 untuk mengenal pasti komit).
Kes penggunaan
- Sahkan integriti muat turun — bandingkan SHA-256 fail yang dimuat turun dengan checksum yang disenaraikan oleh penerbit.
- Kesan kandungan pendua — hash rentetan atau kandungan fail untuk mengesan pendua tanpa menyimpan sumber asal.
- Bina kunci cache — tukar input panjang (URL, query string, badan permintaan) kepada kunci panjang tetap untuk Redis atau Memcached.
- Audit artifak Git — kira SHA-1 sendiri untuk memeriksa alamat objek blob/tree di luar plumbing Git.
Contoh
| Input | Hasil |
|---|---|
| hello | SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| (empty string) | SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
Soalan yang sering ditanya
Mengapa tiada MD5?
MD5 telah rosak secara kriptografi — perlanggaran boleh dihasilkan dalam beberapa saat pada laptop. API SubtleCrypto pelayar tidak mengeksposnya dengan sengaja. Gunakan SHA-256 atau yang lebih kuat.
Bolehkah saya hash fail?
Alat ini menghash input teks. Untuk menghash fail, jatuhkan ke dalam konsol pelayar: `crypto.subtle.digest('SHA-256', await file.arrayBuffer())`.
Adakah hash itu deterministik merentasi larian?
Ya — SHA-256 bagi 'hello' sentiasa nilai yang sama. Fungsi hash adalah tulen (tiada garam, tiada kebarangkalian) mengikut reka bentuk.
Patutkah saya menggunakan SHA-1?
Elakkan untuk aplikasi baru — ia telah rosak untuk serangan perlanggaran. SHA-1 masih biasa untuk checksum fail dan Git, tetapi gunakan SHA-256 untuk apa-apa yang berkaitan dengan keselamatan.
Adakah input saya dihantar ke mana-mana?
Tidak. Penghashan menggunakan API kripto asli pelayar; tiada apa yang meninggalkan peranti anda.
