사용 가능한 해시
MD2 해시, MD4 해시, MD5 해시, SHA1 해시, SHA224 해시, SHA256 해시, SHA384 해시, SHA512/224 해시, SHA512/256 해시, SHA512 해시, SHA3-224 해시, SHA3-256 해시, SHA3-384 해시, SHA3-512 해시, RIPEMD128 해시, RIPEMD160 해시, RIPEMD256 해시, RIPEMD320 해시, WHIRLPOOL 해시, TIGER128,3 해시, TIGER160,3 해시, TIGER192,3 해시, TIGER128,4 해시, TIGER160,4 해시, TIGER192,4 해시, SNEFRU 해시, SNEFRU256 해시, GOST 해시, GOST-CRYPTO 해시, ADLER32 해시, CRC32 해시, CRC32B 해시, CRC32C 해시, FNV132 해시, FNV1A32 해시, FNV164 해시, FNV1A64 해시, JOAAT 해시, MURMUR3A 해시, MURMUR3C 해시, MURMUR3F 해시, XXH32 해시, XXH64 해시, XXH3 해시, XXH128 해시, HAVAL128,3 해시, HAVAL160,3 해시, HAVAL192,3 해시, HAVAL224,3 해시, HAVAL256,3 해시, HAVAL128,4 해시, HAVAL160,4 해시, HAVAL192,4 해시, HAVAL224,4 해시, HAVAL256,4 해시, HAVAL128,5 해시, HAVAL160,5 해시, HAVAL192,5 해시, HAVAL224,5 해시, HAVAL256,5 해시,
Murmur3F란 무엇인가?
Murmur3F(흔히 MurmurHash3의 64비트 버전이라고도 함)는 64비트 CPU 아키텍처를 활용하도록 특별히 설계된 고성능 비암호화 해시 함수입니다. Murmur3C 역시 128비트 해시를 생성하지만, Murmur3F는 32비트 블록이 아닌 64비트 블록 단위로 입력을 처리하도록 최적화되어 있습니다. 이로 인해 고속의 대규모 해싱이 필요한 현대 프로세서에서 가장 효율적인 선택이 되며, 다른 MurmurHash3 계열과 마찬가지로 비암호학적이며 충돌 저항성을 유지합니다.
Murmur3F 해시는 어떻게 작동하나요?
Murmur3F는 처리량을 극대화하기 위해 64비트 연산을 활용합니다:
- 초기화: 64비트 시드(seed)로 시작하여 이를 내부 상태로 확장합니다.
- 64비트 처리: 입력은 8바이트(64비트) 단위로 처리됩니다. 64비트 곱셈, 회전, XOR 연산을 사용합니다. 한 번에 64비트를 처리함으로써 32비트 기반 버전 대비 필요한 연산 횟수를 절반으로 줄입니다.
- 내부 상태: 두 개의 독립적인 64비트 해시 상태(총 128비트)를 유지하며, 데이터가 처리됨에 따라 이 상태들은 병렬로 업데이트됩니다.
- 최종화: 128비트 상태에 대해 일련의 최종 혼합 연산("avalanche")을 수행하여, 모든 입력 비트가 모든 출력 비트에 최대의 영향을 미치도록 보장합니다.
차이점: Murmur3F 대 Murmur3A 및 Murmur3C
- Murmur3F 대 Murmur3A (32비트):
- 처리량: Murmur3F는 데이터를 8바이트 단위로 처리하는 반면, Murmur3A는 4바이트 단위로 처리하므로 최신 64비트 CPU에서 Murmur3F가 훨씬 더 빠릅니다.
해시 크기: Murmur3A는 32비트 공간으로 제한되는 반면, Murmur3F는 훨씬 더 큰 128비트 공간을 제공하므로, 충돌 회피가 중요한 애플리케이션에 Murmur3F가 적합합니다.
Murmur3F 대 Murmur3C (128비트):
- CPU 최적화: 두 알고리즘 모두 128비트 다이제스트를 생성합니다. 그러나 Murmur3C는 상태 업데이트에 32비트 연산을 사용하므로, 코드가 32비트 하드웨어에서 실행되어야 하는 경우 더 적합합니다. Murmur3F는 64비트 연산을 사용하므로 최신 64비트 하드웨어에서 훨씬 더 빠릅니다.
- 구현: 최신 서버 환경(x64)을 위해 개발하는 경우, Murmur3F는 "네이티브" 고성능 128비트 옵션이며, Murmur3C는 더 높은 이식성을 갖추고 하드웨어에 구애받지 않는 128비트 버전입니다.