Compare longitud y seguridad de algoritmos hash
Esta herramienta convierte el nombre de un algoritmo hash en dos datos de seguridad prácticos: la longitud fija del resumen en bits y si su resistencia a colisiones se considera rota actualmente.
Ejecutar — gratis
Admite grafías y separadores habituales, devuelve un nombre canónico y rechaza de forma explícita los algoritmos desconocidos. Úsela para revisar configuraciones, documentar migraciones o impedir que un resumen obsoleto entre en un sistema nuevo. El resultado JSON sirve directamente para automatizar políticas y preparar documentación técnica coherente, sin procesar ni almacenar sus datos.
Qué indica la comparación
Una función hash transforma una entrada de cualquier tamaño en un resumen de longitud fija. La longitud de salida es, por tanto, una propiedad básica del algoritmo indicado: SHA-256 produce 256 bits, mientras que SHA-512 produce 512 bits. Esta herramienta comunica ese tamaño sin calcular el hash de ningún dato. También señala si la resistencia a colisiones del algoritmo se considera criptográficamente rota en la actualidad. Una colisión sucede cuando dos entradas diferentes producen exactamente el mismo resumen. Cuando existen ataques prácticos de colisión, un atacante puede construir documentos o archivos distintos que compartan un hash, de modo que el resumen deja de ser una prueba fiable de unicidad o integridad. El resultado utiliza un valor booleano directo para simplificar las comprobaciones automáticas. Un valor verdadero constituye una señal clara para migrar. Un valor falso significa que esta capacidad no registra una rotura práctica, pero no garantiza por sí solo que todos los usos posibles del algoritmo sean seguros.
Nombres, alias y resultados deterministas
Los nombres de los algoritmos aparecen con estilos diferentes en archivos de configuración, bibliotecas y documentación. SHA-256 puede escribirse como sha256, SHA_256 o SHA-256; todas esas formas identifican la misma función. El comparador normaliza las mayúsculas, las minúsculas y los separadores habituales antes de buscar el algoritmo, y después devuelve una grafía canónica estable. También interpreta los nombres breves BLAKE2b y BLAKE2s como sus variantes convencionales de 512 y 256 bits. El conjunto admitido es finito de manera deliberada. Una etiqueta desconocida produce un error de entrada no válida en vez de una respuesta especulativa, porque nombres parecidos pueden ocultar diferencias importantes de tamaño o construcción. La consulta es determinista, no accede a la red y no depende del reloj. Por ello resulta adecuada para controles de compilación y documentación reproducible: una entrada idéntica siempre genera el mismo JSON, mientras que una errata o un nombre no admitido falla de forma visible.
Interprete correctamente el estado de colisión
La resistencia a colisiones es solo una de las propiedades de seguridad de una función hash. Un valor falso en collision_resistance_broken no recomienda automáticamente el algoritmo para almacenar contraseñas, autenticar mensajes, crear firmas digitales ni utilizarlo en cualquier protocolo. Las contraseñas requieren una función específica con sal y un factor de trabajo ajustable; un hash general rápido no resulta apropiado aunque su resistencia a colisiones permanezca intacta. La autenticación normalmente exige una construcción con clave, como HMAC, y no un resumen simple. Los requisitos del protocolo, el truncamiento, la calidad de la implementación y la resistencia a preimagen también pueden cambiar la decisión. Trate este resultado como la respuesta precisa a una pregunta limitada: si esta clasificación mantenida reconoce una rotura práctica de colisiones para el algoritmo indicado. Úselo para marcar MD5, SHA-1 y otras opciones rotas; después aplique las normas y el modelo de amenazas de su sistema. Consulte las recomendaciones vigentes durante cada migración, pues las políticas aprobadas y los avances criptográficos evolucionan.
Qué puede hacer con ella
Auditar la configuración
Convierta etiquetas de manifiestos o ajustes en datos coherentes y marque algoritmos con colisiones rotas.
Preparar una migración
Compare el tamaño y el estado del algoritmo heredado con los de su sustituto antes de cambiar esquemas.
Validar documentación técnica
Compruebe que un documento indique la longitud correcta y utilice el nombre canónico.
Preguntas frecuentes
¿Cuánto cuesta?
Cada solicitud de API cuesta $0.002. La comparación determinista también puede ejecutarse en el navegador.
¿La herramienta calcula el hash de mis datos?
No. Solo recibe el nombre del algoritmo y devuelve sus propiedades.
¿Qué significa que la resistencia a colisiones esté rota?
Significa que existen métodos prácticos para crear entradas diferentes con el mismo resumen.
¿Un estado falso implica que sirve para contraseñas?
No. Las contraseñas requieren una función específica, con sal y coste ajustable.
¿Qué grafías se aceptan?
No se distinguen mayúsculas y se ignoran separadores comunes; SHA-256, sha256 y SHA_256 equivalen.
¿Qué ocurre con un algoritmo desconocido?
La solicitud falla por entrada no válida; no se estiman propiedades ni se elige un nombre parecido.
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/security/hash-algorithm-compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"algorithm":"SHA-256"}'const res = await fetch("https://api.kit.forhosting.com/security/hash-algorithm-compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"algorithm": "SHA-256"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/hash-algorithm-compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"algorithm": "SHA-256"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/hash-algorithm-compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"algorithm":"SHA-256"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"algorithm":"SHA-256"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/hash-algorithm-compare", 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
{
"algorithm": "SHA-256"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.hash_algorithm_compare",
"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. |