Esta herramienta en línea permite generar el hash murmur3a de cualquier cadena de texto.
La longitud MURMUR3A es de 8 caracteres
Hash disponible
MD2 Hash, MD4 Hash, MD5 Hash, SHA1 Hash, SHA224 Hash, SHA256 Hash, SHA384 Hash, SHA512/224 Hash, SHA512/256 Hash, SHA512 Hash, SHA3-224 Hash, SHA3-256 Hash, SHA3-384 Hash, SHA3-512 Hash, RIPEMD128 Hash, RIPEMD160 Hash, RIPEMD256 Hash, RIPEMD320 Hash, WHIRLPOOL Hash, TIGER128,3 Hash, TIGER160,3 Hash, TIGER192,3 Hash, TIGER128,4 Hash, TIGER160,4 Hash, TIGER192,4 Hash, SNEFRU Hash, SNEFRU256 Hash, GOST Hash, GOST-CRYPTO Hash, ADLER32 Hash, CRC32 Hash, CRC32B Hash, CRC32C Hash, FNV132 Hash, FNV1A32 Hash, FNV164 Hash, FNV1A64 Hash, JOAAT Hash, MURMUR3A Hash, MURMUR3C Hash, MURMUR3F Hash, XXH32 Hash, XXH64 Hash, XXH3 Hash, XXH128 Hash, HAVAL128,3 Hash, HAVAL160,3 Hash, HAVAL192,3 Hash, HAVAL224,3 Hash, HAVAL256,3 Hash, HAVAL128,4 Hash, HAVAL160,4 Hash, HAVAL192,4 Hash, HAVAL224,4 Hash, HAVAL256,4 Hash, HAVAL128,5 Hash, HAVAL160,5 Hash, HAVAL192,5 Hash, HAVAL224,5 Hash, HAVAL256,5 Hash,
¿Qué es Murmur3A?
Murmur3A es una función hash de alto rendimiento y no criptográfica perteneciente a la familia MurmurHash3, desarrollada por Austin Appleby. Está diseñada específicamente para ser extremadamente rápida y eficaz en tablas de búsqueda basadas en hash (mapas hash). Al no ser criptográfica, no está pensada para la seguridad ni para proteger datos contra ataques maliciosos; en cambio, destaca por distribuir claves de manera uniforme a lo largo de una tabla hash, minimizando las colisiones en estructuras de datos de alta carga.
¿Cómo funciona el hash Murmur3A?
El algoritmo procesa los datos de entrada en bloques de 4 bytes, realizando una serie de operaciones bit a bit para mezclar a fondo los bits de entrada:
- Inicialización: Comienza con un valor semilla (un entero de 32 bits) para inicializar el estado del hash.
- Procesamiento del cuerpo: La entrada se divide en bloques de 32 bits. Para cada bloque, el algoritmo realiza una multiplicación por una constante grande (la «constante mágica»
0xcc9e2d51), una rotación de bits a la izquierda (ROL) y otra multiplicación por una segunda constante (0x1b873593). - Mezcla: El resultado se somete a una operación XOR con el estado hash actual, y el propio estado hash se rota y se multiplica para garantizar efectos de avalancha (en los que el cambio de un bit en la entrada modifica muchos bits en la salida).
- Finalización: Tras procesar todos los bloques (y gestionar los bytes finales restantes), el algoritmo realiza un paso final de «mezcla» o «avalancha», que utiliza desplazamientos XOR para garantizar que incluso pequeñas diferencias en la entrada produzcan valores hash de salida significativamente diferentes.
Diferencia entre Murmur3A y CRC32C
Aunque ambas son funciones hash rápidas y no criptográficas, están optimizadas para tareas diferentes:
- Resistencia a colisiones: Murmur3A es significativamente mejor a la hora de distribuir claves de manera uniforme, lo que la hace superior para su uso en tablas hash y estructuras de datos. CRC32C está diseñada para la detección de errores en flujos de datos, por lo que está matemáticamente ajustada para detectar patrones de corrupción en lugar de distribuir claves.
- Rendimiento: CRC32C depende en gran medida de instrucciones de hardware específicas (SSE4.2 en las CPU modernas) para ser rápido. Murmur3A está diseñado para ser altamente eficiente en una implementación puramente de software, lo que lo hace más rápido en hardware antiguo o en plataformas donde no se dispone de CRC acelerado por hardware.
- Efecto avalancha: Murmur3A tiene un «efecto avalancha» mucho más fuerte, lo que significa que la salida es mucho más sensible a los cambios en la entrada que CRC32C, lo cual es un requisito clave para evitar agrupaciones en el almacenamiento de datos basado en hash.