Calculadora hash MurmurHash3
Escriba Hello, world! y obtendrá c0363e43: el hash MurmurHash3 x86 de 32 bits de sus 13 bytes con la semilla 0 por defecto. Sirve para comprobar tablas hash, claves de partición o valores de prueba, nunca para proteger contraseñas. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello, world!
- Resultado
- c0363e43
- Murmur3
- c0363e43
- Hex
- c0363e43
- Semilla
- 0
MurmurHash3 es un hash no criptográfico rápido diseñado por Austin Appleby para tablas hash, claves de partición, filtros bloom y huellas de contenido donde importan la velocidad y una buena distribución más que la resistencia a colisiones frente a un adversario. La variante x86 de 32 bits, muy usada, mezcla el mensaje en bloques de cuatro bytes con constantes publicadas, pliega una cola corta y termina con una mezcla final dependiente de la longitud, produciendo una sola palabra de treinta y dos bits sin signo. Esta herramienta de hash MurmurHash3 acepta texto no vacío, lo codifica como UTF-8, aplica una semilla opcional en el rango completo de treinta y dos bits sin signo y devuelve el resumen hex junto con la etiqueta del algoritmo, la semilla, el recuento de bytes y un breve resumen.
Qué calcula MurmurHash3 x86 de 32 bits y por qué importa la semilla
MurmurHash3 x86 de 32 bits trata cada mensaje como una secuencia ordenada de octetos. El registro del hash se inicializa con la semilla suministrada por el llamador, que vale cero si se omite.
El flujo se procesa en bloques de cuatro bytes little-endian: cada bloque se multiplica por la constante c c nueve e dos d cinco uno, se rota a la izquierda quince bits, se multiplica por uno b ocho siete tres cinco nueve tres y se mezcla en el hash en curso con una rotación a la izquierda de trece bits y un multiplicar-sumar con cinco y e seis cinco cuatro seis b seis cuatro.
Los uno a tres bytes de cola restantes se mezclan con las mismas constantes antes de un paso de finalización que hace xor de la longitud total, aplica dos multiplicaciones de avalancha con ocho cinco e b c a seis b y c dos b dos a e tres cinco, e intercala desplazamientos a la derecha.
Comprobaciones conocidas: la cadena ASCII foo con semilla cero produce f seis a cinco c cuatro dos cero, y Hello coma espacio world exclamación con semilla cero produce c cero tres seis tres e cuatro tres. Cambiar la semilla cambia el resumen de los mismos bytes, de forma intencionada para conjuntos multi-hash y mapas particionados.
Como MurmurHash3 no resiste colisiones frente a un atacante motivado, no lleva clave de secreto y no sirve para contraseñas ni firmas, trátelo como identificador de contenido rápido o mezclador de tabla hash, no como prueba de autenticidad. Prefiera resúmenes de la familia SHA cuando la intención de búsqueda sea el hash criptográfico y no un hash no criptográfico MurmurHash3.
Dónde resulta útil un hash MurmurHash3
Autores de runtimes de lenguaje y estudiantes de sistemas usan una calculadora de hash MurmurHash3 para verificar a mano las mezclas de bloque y los pasos de finalización frente a las constantes publicadas sin escribir un bucle de avalancha completo en cada lenguaje. Las plataformas docentes y los plugins LMS necesitan un oráculo determinista que rechace la entrada vacía y las semillas erróneas en lugar de envolver en silencio, de modo que los autoevaluadores distingan errores de configuración de resúmenes reales.
Los sitios de contenido que posicionan por hash MurmurHash3 o calculadora murmurhash3 se benefician de una herramienta en vivo cuya ruta gratuita coincide byte a byte con la automatización de pago en el mismo módulo puro. Los fallos de validación no consumen saldo tras el rechazo.
Combine con landings de FNV-1, Adler-32, CRC o hash criptográfico solo cuando la intención de búsqueda se aleje de MurmurHash3: mantenga esta página centrada en MurmurHash3 x86 de 32 bits para que la intención SEO siga nítida y no canibalice landings de checksum o digest relacionados.
Qué puede hacer con ella
Claves de tabla hash y partición
Genere claves hex estables MurmurHash3-x86-32 para cadenas cortas usadas como cubetas de mapa, ids de shard o particiones de feature flag, con semilla opcional para diseños multi-hash.
Demostraciones de aula de MurmurHash3
El profesorado muestra los valores clásicos de foo y Hello, world! con semilla cero y deja que el alumnado recalcule otras cadenas cortas sin instalar un módulo nativo.
Preguntas frecuentes
¿Qué valores de semilla están permitidos?
La semilla debe ser un entero de 0 a 4294967295 inclusive. Omítala para usar 0.
¿Qué ocurre si el texto está vacío?
Se exige una cadena no vacía; la entrada vacía no se trata como un hash exitoso.
¿Es gratuita la calculadora MurmurHash3?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Es MurmurHash3 un hash criptográfico?
No. MurmurHash3 es un hash no criptográfico rápido para tablas hash y claves de contenido. Use SHA-256 o similar cuando necesite resistencia a colisiones o autenticación.
¿Cambia el hash MurmurHash3 si cambio la semilla?
Sí. El mismo texto da un hash distinto con cada semilla, y es intencionado: así puede obtener varios hashes independientes para un filtro bloom o un mapa particionado. Si deja la semilla vacía, se usa 0.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/murmur3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/murmur3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/murmur3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/murmur3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/murmur3", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "Hello, world!"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.murmur3",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La entrada vacía y las semillas no válidas se rechazan con invalid_input para que nadie confunda un campo ausente o una semilla errónea con un hash real.
Contrato de entrada, validación de semilla y forma de la respuesta JSON
Si omite seed, el algoritmo usa cero. La cadena se codifica como UTF-8 antes del bucle Murmur, de modo que los caracteres multibyte aportan cada byte de la unidad de código exactamente como lo haría un runtime al hashear el mismo flujo UTF-8. Fije tanto un camino de éxito como un error de semilla inválida en la integración continua para que cambios accidentales de constantes o rotaciones no se publiquen sin aviso. Los campos nulos opcionales se omiten en lugar de emitirse como null, según el contrato del renderizador declarativo para formularios web limpios. Envíe un cuerpo JSON con un campo de cadena obligatorio llamado text: cualquier secuencia no vacía de caracteres que desee hashear. Se aceptan los alias input, value, s, data, message y payload para el mismo campo, de modo que los stubs de SDK y los envíos de formulario sigan siendo flexibles. El campo opcional seed es un entero desde cero hasta cuatro mil doscientos noventa y cuatro millones novecientos sesenta y siete mil doscientos noventa y cinco inclusive (el rango completo de treinta y dos bits sin signo); se aceptan los alias salt e init. Si falta text, el valor no es una cadena o la cadena está vacía, la petición falla con invalid_input y un mensaje claro de que se exige una cadena no vacía; esos fallos no se facturan en la API prepago. Una semilla no válida—no numérica, fraccionaria, booleana, negativa o mayor que dos elevado a treinta y dos menos uno—también falla con invalid_input y un mensaje explícito de semilla inválida para que los operadores corrijan la configuración sin un wrap modular silencioso. En caso de éxito el cuerpo incluye result, murmur3 y hex con el mismo resumen hexadecimal de ocho dígitos en minúsculas; seed con el valor usado; algorithm fijo en MurmurHash3-x86-32; input_bytes igual a la longitud UTF-8; text repitiendo la entrada; y message resumiendo el recuento de bytes, la semilla y el resultado hex.
Dónde aporta valor una API de hash MurmurHash3 y cómo funciona el precio
Use la herramienta gratuita en el navegador para comprobaciones puntuales; llame a la API prepago de KIT desde backends, funciones serverless y SDKs cuando necesite un contrato estable bajo saldo a $0.002 por ítem exitoso. Mantenga las cargas en tamaños de texto ordinarios adecuados a una llamada de ítem en un isolate de Worker; esta herramienta es para cadenas cortas y fragmentos de protocolo, no para blobs binarios de varios megabytes.
Casos de integración
Fixtures de CI para helpers de hash no criptográfico
Las canalizaciones fijan salidas hex deterministas de MurmurHash3 y el error de semilla inválida para que cambios accidentales de constantes, rotación o wrap fallen de inmediato.
Preguntas técnicas
¿Cómo se calcula un hash MurmurHash3 de un texto?
Envíe JSON con un campo de cadena no vacío text y una semilla opcional seed (uint32, valor predeterminado 0). La API codifica la cadena en UTF-8, ejecuta MurmurHash3 x86 de 32 bits y devuelve el hash como ocho dígitos hex en minúsculas en result, murmur3 y hex.