Araç hakkında
Keccak-256 ve SHA3-256 farkı
Ethereum, SHA-3 yarışmasını kazanan Keccak algoritmasını NIST standardı (FIPS 202) yayımlanmadan önce benimsedi. NIST son aşamada dolgu kuralını değiştirdi; bu nedenle Keccak-256 ve SHA3-256 aynı girdi için farklı sonuç verir. Ethereum ve Solidity’deki keccak256 bu araçtaki orijinal Keccak’tır.
keccak256("") = c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
sha3_256("") = a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434aEthereum’da kullanımı
- Fonksiyon seçicisi: fonksiyon imzasının hash’inin ilk 4 baytı.
transfer(address,uint256)→0xa9059cbb. - Olay konusu (topic):
Transfer(address,address,uint256)gibi olay imzalarının tam hash’i. - Adres: açık anahtarın Keccak-256 hash’inin son 20 baytı.
Araç girdiyi UTF-8 metin olarak hash’ler. 0x1234… biçiminde bir hex değerin baytlarını hash’lemek istiyorsanız sonuç farklı olur; Solidity’deki keccak256(abi.encodePacked(...)) ile karşılaştırırken bu farka dikkat edin.