Bahasa Indonesia

Alat pengembang · SHA kalkulator hash

Bagaimana SubtleCrypto.digest Menghitung Hash SHA-256 di Browser

· Cara kerjanya

sha-256 kriptografi browser-apis

UTF-8 byte memasuki browser SHA-256 intisari dan keluar sebagai heksadesimal
Ilustrasi vektor ToolAcre asli

Setiap browser modern dapat melakukan hash byte secara asli melalui Web Crypto. Posting ini mengikuti satu string dari TextEncoder hingga crypto.subtle.digest ke intisari hex, dan menjelaskan batasan setiap langkah.

Hash tanpa instalasi npm — situasi ketika intisari asli mengalahkan pustaka yang dibundel

Anda dapat menghitung intisari untuk nilai teks pendek tanpa menginstal paket hashing atau memposting data ke situs web hash jarak jauh. Browser mengekspos crypto.subtle.digest pada asal yang aman. Hash adalah sidik jari byte dengan panjang tetap yang deterministik; itu tidak menyembunyikan masukan atau membuktikan siapa yang memberikannya. ToolAcre menggunakan implementasi browser daripada mengirimkan algoritma SHA yang ditulis tangan, dan menjaga string tetap di-hash di tab.

Teks bukan byte — mengkodekan input dengan TextEncoder ke UTF-8 sebelum melakukan hashing, dan mengapa langkah ini menentukan jawabannya

Teks “café” dan byte yang dimasukkan ke dalam hash bukanlah jenis objek yang sama. TextEncoder memetakan string ke UTF-8 byte (63 61 66 C3 A9 untuk kafe), sedangkan konversi Latin-1 yang naif akan menggunakan E9 untuk karakter akhir dan menghasilkan intisari yang berbeda. Bahkan teks yang identik secara visual dapat memiliki bentuk normalisasi Unicode yang berbeda. Setujui pengkodean dan normalisasi sebelum membandingkan hash di JavaScript, CLI dan server. Mode teks ToolAcre secara eksplisit melakukan konversi UTF-8 sebelum melakukan hashing.

Panggilan intisari — crypto.subtle.digest dengan nama algoritma dan ArrayBuffer, dan mengapa ia mengembalikan janji

crypto.subtle.digest("SHA-256", bytes) mengembalikan Janji karena pekerjaan kriptografi mungkin tidak sinkron; tunggu sebelum membaca hasilnya. Metode ini mengambil seluruh buffer input, bukan iterator streaming. SHA-256 memancarkan 256 bits (32 bytes) terlepas dari apakah inputnya memiliki tiga atau tiga juta karakter. Pembatasan konteks aman berarti HTTPS atau localhost diperlukan untuk SubtleCrypto API, dan alat tersebut melaporkan ketidakhadirannya alih-alih membuat fallback.

Dari ArrayBuffer ke hex — mengubah byte hasil menjadi string karakter 64 yang dikenali orang

Janji tersebut menghasilkan ArrayBuffer byte, bukan string digit hex yang sudah dikenal. Konversikan setiap byte menjadi dua karakter dasar 16 dengan nol di depannya sesuai kebutuhan, sehingga menghasilkan 64 karakter huruf kecil untuk SHA-256. Representasi hex ini menggandakan panjang 32 bytes, tetapi tidak mengubah intisarinya. Base64 dapat mewakili 32 bytes yang sama dengan lebih kompak; perbandingan hanya masuk akal setelah mengonfirmasi kecocokan algoritme, pengkodean masukan, dan representasi keluaran.

Contoh praktis - melakukan hashing pada string pendek langkah demi langkah, menampilkan byte pada setiap tahap

Untuk teks ASCII abc, UTF-8 menghasilkan byte 61 62 63. SHA-256 dari byte yang tepat adalah ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Uji ini di ToolAcre dan implementasi hash tepercaya lainnya: mengubah abc menjadi abc diikuti dengan baris baru memberikan hasil yang berbeda. Jika keluarannya berbeda, periksa pengkodean spasi dan byte tersembunyi sebelum mencurigai primitif kriptografi. Intisari yang ditampilkan adalah vektor pengujian yang dapat direproduksi, bukan klaim bahwa abc adalah rahasia.

Konteks aman — mengapa crypto.subtle hanya tersedia di HTTPS dan localhost

crypto.subtle adalah konteks aman API. Halaman produksi HTTPS dan halaman pengembangan localhost umumnya mengeksposnya; halaman HTTP jarak jauh biasa yang tidak aman mungkin tidak. Alat ini juga membutuhkan memori yang cukup untuk menampung input dan output. Jika Web Crypto tidak tersedia, beralih secara diam-diam ke hash JavaScript yang belum ditinjau akan membuat hasil yang sensitif terhadap keamanan bergantung pada implementasi yang berbeda. Gagal jelas dan pilih lingkungan yang aman.

Apa yang tidak tercakup dalam hal ini — hashing dengan kunci (HMAC) dan hashing tambahan dari input yang sangat besar, yang tidak disediakan oleh ringkasan satu kali API

Intisari sekali pakai API bukanlah hashing tambahan untuk file berukuran besar. SHA-256 bukanlah skema penyimpanan kata sandi: hash tanpa garam yang cepat membuat tebakan menjadi murah, jadi penyimpanan kata sandi memerlukan KDF yang dibuat khusus, diasinkan, dan sengaja dibuat mahal. SHA-1 mungkin ditampilkan untuk interoperabilitas lama, tetapi ketahanan benturannya rusak dan ini bukan pilihan yang baik untuk sistem integritas atau tanda tangan baru. HMAC adalah autentikasi dengan kunci, bukan operasi yang sama dengan mencerna byte yang tidak diautentikasi.

Kesimpulan: browser sudah memiliki fungsi hash — kalkulator hash ToolAcre SHA menggunakan API ini, jadi outputnya adalah milik browser

Browser sudah menyediakan SHA-256: menyandikan teks sebagai byte, menunggu intisari, lalu memformat hasilnya untuk perbandingan. ToolAcre SHA kalkulator hash mengikuti jalur tersebut untuk teks yang ditempel dan memberi label SHA-1 sebagai warisan saja. Bandingkan abc dengan hasil yang diketahui terlebih dahulu, lalu hash materi non-sensitif aktual yang byte dan pengkodeannya Anda pahami.