Keccak-256 해시 계산기

이더리움에서 쓰는 Keccak-256으로 텍스트나 원시 바이트를 해싱하고 SHA3-256, SHA-256과 비교하세요. 입력하는 대로 결과가 갱신되며, 처음 4바이트가 Solidity 함수 셀렉터입니다.

브라우저에서 JavaScript로 계산합니다. 주소는 절대 업로드되거나 저장되지 않습니다.

Keccak-256란 무엇인가요?

Keccak-256는 이더리움이 거의 모든 곳에서 사용하는 256비트 스펀지 해시 함수입니다. 주소는 공개키의 Keccak-256 해시 중 마지막 20바이트이고, 함수 셀렉터는 정규 시그니처의 Keccak-256 해시 중 처음 4바이트이며, 이벤트 토픽, EIP-55 체크섬, 스토리지 슬롯도 모두 여기서 파생됩니다. 이는 원래의 Keccak 제출안으로, NIST가 최종 확정한 SHA3-256과는 패딩 바이트만 다르기 때문에 같은 입력에 대해 두 함수는 서로 다른 다이제스트를 냅니다.

주요 용도

테스트 벡터

입력Keccak-256
(빈 문자열)0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
abc0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

이 값들 중 하나를 붙여넣어 구현이 올바른지 확인한 뒤 사용하세요.

Keccak-256 vs. SHA3-256 vs. SHA-256

함수계열패딩 / 구조사용처
Keccak-256Keccak 스펀지, rate 1088비트pad10*1, 도메인 바이트 0x01이더리움, Tron(TVM), 모든 EVM 체인
SHA3-256Keccak 스펀지, rate 1088비트pad10*1, 도메인 바이트 0x06 (FIPS 202)NIST 애플리케이션, 일부 비 EVM 체인
SHA-256Merkle–Damgård (SHA-2)길이 패딩, 512비트 블록비트코인, Tron txID, TLS, Base58Check

예시: FIPS 202 라이브러리에서 abc의 SHA3-256은 0x3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532를 반환하지만, 같은 3바이트의 Keccak-256은 위 표의 0x4e03657a… 값입니다. 컨트랙트나 익스플로러의 값이 라이브러리 결과와 다르다면 패딩 바이트부터 확인하세요.

자주 묻는 질문

Keccak-256와 SHA3-256은 같은 것인가요?

아닙니다. 이더리움은 NIST가 SHA-3를 최종 확정하기 전에 Keccak을 채택했고, 최종 표준에서 패딩 바이트가 바뀌었습니다(Keccak은 0x01, SHA3는 0x06). 같은 입력에 대해 두 함수는 다른 출력을 내며, 그래서 web3 라이브러리들이 이 함수를 sha3가 아닌 keccak256이라고 부릅니다. 이 페이지는 두 값을 모두 보여주므로 차이를 직접 확인할 수 있습니다.

이더리움은 Keccak-256를 어디에 사용하나요?

공개키에서 주소 도출(해시의 마지막 20바이트), 함수 셀렉터와 이벤트 토픽(시그니처의 해시), EIP-55 체크섬, 매핑의 스토리지 슬롯 계산, Merkle-Patricia 트라이 노드, 그리고 블록 해시와 트랜잭션 해시에 사용됩니다.

텍스트와 hex 중 무엇을 해시해야 하나요?

시그니처나 일반 문자열이라면 UTF-8 텍스트를 선택하세요. 비압축 공개키나 ABI 인코딩된 데이터처럼 원시 바이트가 있다면 hex를 선택하세요. 0x 접두사는 있어도 되고 없어도 됩니다. 텍스트 "0xabcd"를 해시하는 것과 바이트 0xabcd를 해시하는 것은 결과가 다릅니다.

해시가 서버에서 계산되나요?

아닙니다. Keccak, SHA3, SHA-256은 이 페이지의 JavaScript로 구현되어 브라우저에서 실행됩니다. 페이지는 로드 이후 어떤 네트워크 요청도 보내지 않습니다.

빈 문자열의 Keccak-256 값은 무엇인가요?

0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470입니다. 이더리움에서 끊임없이 등장하는 값으로, 코드가 없는 모든 계정의 코드 해시이기 때문에 익스플로러가 일반 지갑에 대해 이 값을 표시합니다.

비트코인 값도 여기서 검증할 수 있나요?

SHA-256이 포함되어 있으므로 데이터를 한 번 해시할 수 있습니다. 비트코인의 이중 SHA-256과 RIPEMD-160은 별도 출력으로 제공되지 않지만, 비트코인 주소 검증기가 주소를 검사할 때 내부적으로 수행합니다.