Araç hakkında
SHA3-256 nedir?
SHA3-256, 2015’te FIPS 202 ile standartlaşan SHA-3 ailesinin 256 bitlik üyesidir. SHA-2’den tamamen farklı bir iç yapıya, Keccak “sünger” (sponge) yapısına dayanır: girdi 1088 bitlik bloklar hâlinde 1600 bitlik bir duruma emilir, ardından çıktı bu durumdan sıkılır.
Çıktı 64 hex karakterdir. Çarpışma direnci 128 bit, ön görüntü direnci 256 bittir.
printf 'abc' | openssl dgst -sha3-256
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532SHA-2 yerine ne zaman seçilir?
- Sünger yapısı uzunluk uzatma (length extension) saldırısına karşı doğal olarak dayanıklıdır;
H(gizli || mesaj)gibi basit yapılar SHA-2’deki kadar tehlikeli değildir (yine de MAC için HMAC veya KMAC tercih edin). - SHA-2’de ileride bir zayıflık bulunması ihtimaline karşı farklı tasarımlı bir yedek isteyen sistemlerde.
- SHA-2 donanım hızlandırması (Intel SHA-NI, ARMv8) daha yaygın olduğundan, performans önemliyse SHA-256 / SHA-512 çoğu işlemcide daha hızlıdır.
Ethereum’un kullandığı Keccak-256, SHA3-256 ile aynı değildir; dolgu kuralı farklıdır. Ethereum için Keccak-256 aracını kullanın.
Sık sorulan sorular
Komut satırında farklı bir sonuç alıyorum, neden?
echo abc metnin sonuna satır sonu ekler ve hash bu karakteri de içerir. Aynı sonucu almak için printf 'abc' veya echo -n abc kullanın. Bu araç metni yazdığınız gibi, UTF-8 baytları olarak hash’ler.