Skip to content

SHA-3 Hash Generator (Keccak SHA3-256 NIST)

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.

Tanpa Pelacakan Berjalan di Browser Gratis
Hashing SHA-3 berjalan di browser Anda melalui library js-sha3. Tidak ada data yang dikirim ke server mana pun.
Algoritma
Ditinjau untuk kebenaran SHA3-256 terhadap vektor uji NIST FIPS 202 CAVP; perbedaan padding Keccak vs SHA-3 diverifikasi — Go Tools Engineering Team · May 28, 2026

Apa Itu SHA-3?

SHA-3 (Secure Hash Algorithm 3) adalah generasi ketiga Secure Hash Standard NIST, distandarkan dalam FIPS 202 pada Agustus 2015. Tidak seperti SHA-1 dan SHA-2, yang didasarkan pada konstruksi Merkle-Damgård, SHA-3 menggunakan desain yang disebut konstruksi sponge — pilihan yang NIST buat secara sengaja untuk memastikan keretakan kriptanalitis SHA-2 tidak akan secara otomatis mengkompromikan SHA-3.

Kompetisi SHA-3 NIST (2007–2012): NIST meminta kiriman publik di seluruh dunia pada 2007. Setelah tiga ronde evaluasi, 64 kandidat dipersempit menjadi lima finalis: BLAKE, Grøstl, JH, Keccak, dan Skein. Pada Oktober 2012, Keccak — dirancang oleh Guido Bertoni, Joan Daemen, Michaël Peeters, dan Gilles Van Assche dari STMicroelectronics dan NXP Semiconductors — dipilih sebagai pemenang. Semua lima finalis dianggap aman; desain berbasis sponge unik Keccak memberikan keragaman struktural yang NIST prioritaskan.

Konstruksi sponge: SHA-3 menyerap input ke dalam status 1600-bit (permutasi Keccak-f[1600]) dalam fase absorb, kemudian memeras bit output dari status dalam fase squeeze. Untuk SHA3-256, pembagian laju/kapasitas adalah 1088/512 bit. Karena hanya 256 dari 1600 bit status internal yang muncul dalam output, penyerang tidak dapat merekonstruksi status penuh dari hash — membuat serangan ekstensi panjang mustahil secara struktural. Ini kontras dengan SHA-256, di mana status internal penuh terekspos dalam output, memerlukan HMAC untuk mencegah ekstensi panjang.

SHA-3 vs. Keccak — perbedaan padding: NIST memodifikasi kiriman Keccak asli dengan mengubah padding pemisahan domain dari 0x01 menjadi 0x06. Ini berarti NIST SHA3-256 dan Keccak-256 asli menghasilkan output 64-karakter-hex yang berbeda untuk setiap input. Ini bukan kekhawatiran teoritis — ini mengapa keccak256 Ethereum (dibekukan sebelum FIPS 202 diselesaikan) berbeda dari output SHA3-256 alat ini untuk string yang sama. Jangan pernah gunakan alat ini untuk mereplikasi derivasi alamat Ethereum.

FIPS 202 mendefinisikan empat varian SHA-3: SHA3-224 (56 karakter hex), SHA3-256 (64 karakter hex), SHA3-384 (96 karakter hex), SHA3-512 (128 karakter hex). Alat ini mengimplementasikan SHA3-256, varian yang paling umum dan yang paling langsung sebanding dengan SHA-256.

Catatan library: SHA-3 belum ada dalam spesifikasi Web Crypto API browser (crypto.subtle hanya mendukung SHA-1, SHA-256, SHA-384, SHA-512). Alat ini men-lazy-load library JavaScript js-sha3 (~10 KB dikompresi) pada penggunaan pertama. Setelah satu unduhan tersebut, semua komputasi berjalan secara lokal di browser Anda — tidak ada data input yang pernah dikirim.

Kapan menggunakan SHA-3: protokol baru yang memerlukan keragaman struktural dari SHA-2; MAC berkunci tanpa pembungkus HMAC (KMAC128/256 per NIST SP 800-185); perlindungan pasca-kuantum sebagai cadangan SHA-2; kepatuhan dengan sistem yang mengamanatkan FIPS 202. Kapan tetap menggunakan SHA-256: dukungan library universal, akselerasi hardware (ekstensi SHA-NI), kompatibilitas protokol yang ada, dan sebagian besar kasus penggunaan integritas sehari-hari di mana SHA-256 sudah menjadi standar yang ditetapkan.

// SHA-3 (NIST FIPS 202 SHA3-256) using js-sha3 library
import { sha3_256 } from 'js-sha3';

const hash = sha3_256('Hello, World!');
// → '882f4b6991a775295186a4e3cc5ece9fc0b618c8c3e7a7beafdd0f56f13ae43b'

// Note: this differs from Ethereum's keccak256 for the same input:
// keccak256('Hello, World!') = 'acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f'
// The difference is the padding byte: 0x06 (SHA-3) vs 0x01 (original Keccak)

Contoh SHA-3

Verifikasi vektor uji NIST FIPS 202

abc
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532

SHA3-256("abc") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 — ini adalah vektor uji NIST FIPS 202 resmi. Tempel "abc" ke alat dan konfirmasi output persis ini untuk memverifikasi Anda menghitung NIST SHA-3 (bukan Keccak asli). Tes tunggal ini membedakan implementasi SHA-3 yang sesuai FIPS dari yang menggunakan byte padding Keccak lama.

Perbedaan Keccak vs SHA-3 — input sama, output berbeda

Hello

SHA3-256("Hello") dari alat ini (NIST FIPS 202) = 8ca66ee6b2fe4bb928a8e3cd2f508de4119c0895f22df86f0ab7e30e487e4500. keccak256("Hello") Ethereum = 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2. Input yang sama, output 64-karakter-hex yang berbeda. Perbedaannya adalah sufiks padding: NIST SHA-3 menggunakan 0x06 sementara Keccak asli (yang Ethereum bekukan pada 2013) menggunakan 0x01. Ethereum mendahului standardisasi NIST 2015 dan bercabang secara permanen dari varian FIPS 202.

Hash arsip pasca-kuantum

NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management

SHA3-256 memberikan ketahanan pre-image 128-bit terhadap algoritma Grover pada komputer kuantum — tingkat keamanan efektif yang sama dengan SHA-256 terhadap serangan kuantum. Untuk data yang harus tetap tahan manipulasi melampaui 2050, menggunakan SHA-3 bersama SHA-256 memberikan pertahanan berlapis: jika keretakan ditemukan pada konstruksi satu algoritma (Merkle-Damgård untuk SHA-2; sponge Keccak untuk SHA-3), yang lain tetap aman. Lihat SHA-256 Generator untuk sisi SHA-2 dari perlindungan ganda ini.

Autentikasi berkunci HMAC-SHA3-256

POST /api/ledger
{"amount":250000,"from":"acct-A","to":"acct-B"}

HMAC-SHA3-256 adalah alternatif modern untuk HMAC-SHA-256 untuk autentikasi pesan berkunci. Karena konstruksi sponge SHA-3 secara alami tahan terhadap serangan ekstensi panjang, MAC berkunci SHA3-256 biasa (KMAC, didefinisikan dalam NIST SP 800-185) juga aman — tidak seperti SHA-256 mentah, yang memerlukan pembungkus HMAC untuk bertahan terhadap ekstensi panjang. Untuk API berassurance tinggi baru, HMAC-SHA3-256 (atau KMAC128) memberikan jaminan arsitektur yang lebih kuat.

Cara Membuat Hash SHA-3

  1. 1

    Tempel teks ke kolom input

    Pilih tab Teks dan ketik atau tempel string apa pun. Hash SHA3-256 diperbarui secara langsung saat Anda mengetik. Pada penggunaan pertama, library js-sha3 (~10 KB) diambil dan disimpan dalam cache — Anda mungkin melihat jeda singkat pada hash pertama; semua hash berikutnya instan. Algoritma sudah diatur ke SHA-3 (NIST FIPS 202 SHA3-256).

  2. 2

    Salin output hex 64 karakter

    Klik tombol Salin di samping hasil hash. String hex lowercase 64 karakter disalin ke clipboard Anda. Gunakan toggle Huruf Besar jika sistem target Anda memerlukan uppercase. Output ini cocok dengan yang dihasilkan implementasi SHA3-256 yang sesuai FIPS 202 mana pun — tetapi perhatikan bahwa berbeda dari keccak256 Ethereum untuk input yang sama.

  3. 3

    Verifikasi dengan tab Bandingkan

    Beralih ke tab Bandingkan dan tempel dua hash SHA3-256 secara berdampingan. Alat menggunakan perbandingan constant-time untuk melaporkan cocok atau tidak cocok tanpa membocorkan informasi timing. Berguna untuk memverifikasi vektor uji NIST CAVP, memeriksa manifes arsip, atau mengonfirmasi bahwa dua implementasi SHA3-256 menghasilkan output yang identik.

Detail Teknis

Algoritma: konstruksi sponge Keccak-f[1600]
SHA3-256 menerapkan permutasi Keccak-f[1600] (24 ronde operasi theta, rho, pi, chi, iota pada array status 5×5×64) dalam konstruksi sponge dengan rate=1088 bit dan capacity=512 bit. Input diserap dalam blok 136-byte (1088-bit); 256 bit output diperas. Pemisah domain FIPS 202 menambahkan 0x06 sebelum padding. Implementasi: NIST FIPS 202 (2015) bagian 6.
Output: SHA3-256 secara default, 64 karakter hex (FIPS 202 juga mendefinisikan 224/384/512)
Alat ini menghasilkan SHA3-256: selalu tepat 64 karakter heksadesimal (256 bit = 32 byte). NIST FIPS 202 juga menstandarkan SHA3-224 (56 karakter), SHA3-384 (96 karakter), dan SHA3-512 (128 karakter) — semua menggunakan permutasi Keccak-f[1600] yang sama dengan pembagian rate/capacity yang berbeda. Panjang output tetap terlepas dari ukuran input.
Performa: js-sha3 yang di-lazy-load (~10 KB); ~150–400 MB/s di browser
Tidak seperti rute SHA-2 (yang menggunakan Web Crypto API native browser), SHA-3 tidak ada dalam spesifikasi Web Crypto. Alat ini memuat library js-sha3 (~10 KB dikompresi) pada penggunaan pertama, lalu menyimpannya dalam cache. Throughput yang khas: 150–400 MB/s dalam JavaScript, versus 400–700 MB/s untuk SHA-256 melalui Web Crypto. Untuk hashing teks (kilobyte) perbedaannya tidak terasa.
Standar: NIST FIPS 202 (2015), NIST SP 800-185 (KMAC), NIST IR 8105
Distandarkan dalam FIPS 202 (Agustus 2015). NIST SP 800-185 (2016) mendefinisikan KMAC128 dan KMAC256 — fungsi MAC berkunci berbasis SHA-3 yang secara alami kebal ekstensi panjang tanpa pembungkus HMAC. NIST IR 8105 merekomendasikan varian SHA-3 untuk margin keamanan pasca-kuantum. Saat ini disetujui untuk semua tingkat kekuatan keamanan hingga 2030 dan seterusnya di bawah NIST SP 800-131A Rev 2.

Praktik Terbaik

Jangan bingungkan SHA3-256 dengan keccak256 Ethereum
Keduanya adalah algoritma yang berbeda dengan output yang berbeda untuk setiap input. Alat ini menghitung NIST FIPS 202 SHA3-256 (byte padding 0x06). keccak256 Ethereum menggunakan padding Keccak asli (0x01). Jika Anda menghitung hash alamat Ethereum, slot penyimpanan EVM, atau hasil Solidity keccak256(), Anda memerlukan alat khusus keccak256 — alat ini akan memberi Anda jawaban yang salah untuk kasus penggunaan tersebut.
Gunakan SHA-3 sebagai perlindungan ganda di samping SHA-256, bukan sebagai pengganti
SHA-3 dan SHA-2 menggunakan desain yang secara struktural berbeda (sponge vs. Merkle-Damgård). Manifes hash ganda (SHA-256 + SHA3-256) memberikan pertahanan berlapis: jika keretakan kriptanalitis pernah ditemukan pada konstruksi satu keluarga, yang lain tetap aman. Untuk data arsip jangka panjang dan catatan pemerintah, NIST merekomendasikan mempertimbangkan pendekatan dual-algoritma ini. Untuk penggunaan sehari-hari, SHA-256 saja sudah lebih dari cukup.
Gunakan KMAC daripada HMAC-SHA3-256 untuk desain MAC berkunci baru
NIST SP 800-185 mendefinisikan KMAC128 dan KMAC256 — MAC berkunci yang dibuat khusus berdasarkan SHA-3. Karena konstruksi sponge secara alami kebal ekstensi panjang, KMAC tidak memerlukan pembungkus double-hashing yang diperlukan HMAC untuk keamanan. Untuk protokol baru yang memiliki fleksibilitas dalam pilihan algoritma MAC, KMAC128 (keamanan 128-bit) atau KMAC256 (keamanan 256-bit) lebih bersih dan sedikit lebih efisien dari HMAC-SHA3-256.
Gunakan perbandingan constant-time saat memverifikasi hash SHA-3 dalam kode
Saat membandingkan dua hash SHA3-256 dalam kode, selalu gunakan fungsi kesetaraan constant-time: crypto.timingSafeEqual() di Node.js, hmac.compare_digest() di Python, subtle.ConstantTimeCompare() di Go. Kesetaraan string naif (=== atau ==) membocorkan informasi timing yang dapat memungkinkan penyerang merekonstruksi hash yang diharapkan byte-per-byte. Ini berlaku sama untuk SHA-3 dan semua fungsi hash lainnya. Tab Bandingkan alat ini sudah menggunakan perbandingan constant-time.

FAQ SHA-3

Apakah SHA-3 sama dengan Keccak?
Hampir, tetapi tidak identik. SHA-3 didasarkan pada algoritma Keccak, yang memenangkan kompetisi SHA-3 NIST 2007-2012, tetapi NIST mengubah aturan padding selama standardisasi. Keccak asli menambahkan byte sufiks 0x01 sebelum padding; NIST SHA-3 (FIPS 202, 2015) menambahkan 0x06. Perbedaan satu byte ini berarti SHA3-256 dan Keccak-256 menghasilkan output 64 karakter yang berbeda untuk setiap input. Algoritma secara struktural identik — permutasi Keccak-f[1600] yang sama, konstruksi sponge yang sama. Ketika seseorang mengatakan "Keccak" dalam konteks Ethereum/blockchain, mereka hampir selalu bermaksud varian padding pre-FIPS asli, bukan NIST SHA-3.
Mengapa Ethereum menggunakan keccak256, bukan SHA-3?
Ethereum dirancang pada 2013–2014 dan diluncurkan pada 2015 — sebelum NIST menyelesaikan SHA-3 pada Agustus 2015. Ketika protokol Ethereum dibekukan, implementasi referensi proposal asli tim Keccak adalah yang digunakan. NIST kemudian mengubah padding selama standardisasi, tetapi Ethereum tidak dapat mengadopsi varian FIPS 202 secara retroaktif tanpa merusak konsensus (setiap node harus menghitung hash yang identik). Hasilnya adalah percabangan permanen: keccak256 Ethereum menggunakan padding Keccak asli (0x01), sementara SHA3-256 alat ini menggunakan padding NIST FIPS 202 (0x06). Jangan gunakan alat ini untuk mereplikasi derivasi alamat Ethereum atau hasil EVM keccak256 — Anda akan mendapatkan hasil yang salah.
Apa itu konstruksi sponge?
Konstruksi sponge adalah alternatif SHA-3 untuk rantai Merkle-Damgård SHA-2. Alih-alih mengompresi input blok-per-blok menjadi status hash yang berjalan (Merkle-Damgård), sponge memiliki dua fase: absorb (input di-XOR ke sebagian status dan dicampur dengan permutasi Keccak-f[1600] berulang kali) dan squeeze (bit output dibaca dari status). Manfaat keamanan kritis: status internal lebih besar dari output — SHA3-256 menggunakan status 1600-bit tetapi hanya mengeluarkan 256 bit, meninggalkan 1344 bit status tersembunyi. Penyerang yang hanya melihat output 256-bit tidak dapat merekonstruksi status penuh untuk memperpanjang pesan, membuat serangan ekstensi panjang mustahil secara struktural. Ini berbeda dari SHA-256, yang memerlukan HMAC untuk mencegah ekstensi panjang.
Haruskah saya menggunakan SHA-3 alih-alih SHA-2?
Tidak secara default — baik SHA-256 maupun SHA3-256 saat ini aman dan disetujui NIST. SHA-3 dirancang sebagai cadangan struktural untuk SHA-2: karena keduanya menggunakan desain yang sama sekali berbeda (Merkle-Damgård vs. sponge), keretakan pada satu algoritma tidak membahayakan yang lain. Gunakan SHA-3 ketika: (1) protokol Anda secara eksplisit memerlukannya, (2) Anda memerlukan kekebalan ekstensi panjang tanpa pembungkus HMAC, (3) Anda membangun sistem baru yang menginginkan ketangkasan algoritma yang tahan masa depan, atau (4) organisasi Anda mengamanatkan hash cadangan SHA-3 di samping SHA-256. Untuk checksum file sehari-hari, SHA-256 tetap menjadi standar universal.
Apakah SHA-3 lebih cepat dari SHA-256?
Dalam perangkat lunak, biasanya lebih lambat. SHA3-256 biasanya mencapai 150–400 MB/s dalam JavaScript browser, dibandingkan 400–700 MB/s untuk SHA-256 melalui Web Crypto API (yang menggunakan implementasi SHA-2 native tingkat C browser). Dalam hardware khusus dan ASIC, permutasi Keccak-f[1600] SHA-3 seringkali lebih cepat karena lebih baik diparalelkan dan hanya menggunakan operasi bitwise sederhana (XOR, AND, rotate). SHA-3 juga mengungguli SHA-2 pada hardware embedded 32-bit dalam banyak kasus. Untuk alat berbasis browser, celah performa ini tidak terasa; untuk hashing file massal, ini penting.
Seberapa panjang hash SHA-3 dari alat ini?
Alat ini menggunakan default SHA3-256, yang selalu menghasilkan tepat 64 karakter heksadesimal (256 bit = 32 byte, 2 karakter hex per byte). NIST FIPS 202 juga mendefinisikan SHA3-224 (56 karakter hex), SHA3-384 (96 karakter hex), dan SHA3-512 (128 karakter hex). Semua berbagi permutasi Keccak-f[1600] yang sama; hanya pembagian kapasitas/laju dan panjang output yang berbeda. Untuk perbandingan: SHA-256 juga menghasilkan 64 karakter hex, tetapi keduanya adalah string 64-karakter yang berbeda untuk input yang sama.
Apakah SHA-3 tahan kuantum?
Sebagian. Algoritma Grover pada komputer kuantum dapat mengakar kuadrat ruang pencarian dari fungsi hash mana pun, secara efektif membagi dua tingkat keamanan. SHA3-256 memiliki 256 bit ketahanan pre-image, yang dikurangi menjadi 128 bit di bawah serangan kuantum — masih aman di bawah model ancaman jangka pendek mana pun. Keunggulan penting dibandingkan SHA-2: konstruksi sponge SHA-3 tidak terkait dengan Merkle-Damgård, sehingga tidak terpengaruh oleh teknik kriptanalitis spesifik terhadap fungsi kompresi SHA-2. Panduan pasca-kuantum NIST merekomendasikan SHA-3 sebagai hash pilihan untuk protokol baru yang menginginkan keragaman desain di samping SHA-2.
Apakah data saya dikirim ke server saat menggunakan alat ini?
Tidak. Setelah pemuatan library awal (skrip js-sha3 diambil sekali dari CDN, ~10 KB), semua hashing berjalan sepenuhnya di browser Anda dalam JavaScript. Buka DevTools → tab Network saat meng-hash teks — Anda akan melihat nol permintaan keluar yang membawa data input Anda. Tidak seperti alat SHA-2 di situs ini (yang menggunakan Web Crypto API bawaan browser), SHA-3 belum ada dalam spesifikasi Web Crypto, sehingga library JavaScript diperlukan. Unduhan library adalah satu-satunya permintaan jaringan; teks Anda tidak pernah meninggalkan halaman.
Apa itu kompetisi SHA-3 NIST?
NIST menyelenggarakan kompetisi terbuka dari 2007 hingga 2012 untuk memilih standar Secure Hash Algorithm ketiga — bukan untuk menggantikan SHA-2 (yang tetap aman), tetapi untuk mendiversifikasi lanskap algoritma hash jika SHA-2 pernah diretakkan. 64 kiriman awal dipersempit menjadi 5 finalis: BLAKE, Grøstl, JH, Keccak, dan Skein. Keccak, yang dirancang oleh Guido Bertoni, Joan Daemen, Michaël Peeters, dan Gilles Van Assche, dipilih sebagai pemenang pada Oktober 2012 dan distandarkan sebagai SHA-3 dalam NIST FIPS 202 pada Agustus 2015.
Apakah SHA-3 rentan terhadap serangan ekstensi panjang?
Tidak — secara desain. Serangan ekstensi panjang mengeksploitasi fakta bahwa konstruksi Merkle-Damgård (SHA-256, SHA-512, MD5) mengekspos status internal dalam output hash, memungkinkan penyerang menambahkan data ke pesan yang di-hash tanpa mengetahui prefiks rahasia. Konstruksi sponge SHA-3 menghindari ini sepenuhnya: status internal 1600-bit lebih besar dari output 256-bit, sehingga output tidak mengungkapkan cukup status untuk memperpanjang pesan. Ini berarti Anda dapat menggunakan SHA3-256 biasa sebagai primitif MAC berkunci (KMAC) dengan aman, sedangkan menggunakan SHA-256 mentah sebagai MAC berkunci (HASH(kunci || pesan)) tidak aman tanpa pembungkus HMAC.