Calcular un hash
El hashing parece una función de una sola línea hasta que necesita aplicarlo de forma consistente en muchos servicios, en lote, con el algoritmo correcto para cada tarea. Esta api para generar hash sha256 produce hashes SHA-256, SHA-512, MD5 y bcrypt bajo demanda, para que las verificaciones de integridad y el almacenamiento de contraseñas no dependan de que cada servicio reimplemente correctamente la misma pieza.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Cuatro algoritmos, cuatro propósitos distintos
SHA-256 y SHA-512 son funciones hash criptográficas diseñadas para verificar integridad y firmas digitales, rápidas por diseño, y precisamente por eso son inadecuadas para contraseñas: un hash rápido significa que un atacante puede probar miles de millones de intentos por segundo. MD5 es todavía más rápido y se considera roto para cualquier uso de seguridad desde que se demostraron ataques de colisión prácticos en 2004, hoy sobrevive solo para checksums sin adversario, como verificar que un archivo no se corrompió en el traslado. Bcrypt invierte toda la premisa: es deliberadamente lento, con un factor de trabajo ajustable, porque frenar al atacante es todo el objetivo de diseño cuando lo que se protege es una contraseña.
Qué hace POST /dev/hash
Envía el texto de entrada y el algoritmo deseado. Para SHA-256, SHA-512 y MD5 recibe el resumen en hexadecimal. Para bcrypt recibe un hash con sal incluida y el factor de trabajo integrado en el resultado, listo para guardarse tal cual, ya que el formato de bcrypt ya contiene todo lo necesario para verificar una coincidencia después sin que tenga que rastrear la sal por separado.
Dónde aparece SHA-256 en particular
Publicado por la Agencia de Seguridad Nacional en 2001 como parte de la familia SHA-2, SHA-256 se convirtió en la columna vertebral de una enorme cantidad de infraestructura posterior: gestores de paquetes que verifican la integridad de las descargas, la migración de git hacia el almacenamiento de objetos con SHA-256, y una cantidad incontable de sistemas que necesitan una huella de longitud fija para datos arbitrarios. Su popularidad no es casual, logra un equilibrio práctico entre margen de seguridad y costo computacional que se ha sostenido por más de dos décadas.
Cómo encaja en un flujo automatizado
Los sistemas de deduplicación que calculan la huella de archivos antes de almacenarlos, los sistemas de build que verifican la integridad de un artefacto antes de desplegarlo, y los flujos de registro que necesitan hashear una contraseña antes de que toque una base de datos, todos llaman a este endpoint de la misma forma: envía, recibe un task_id, y obtiene el resultado por webhook firmado o por un enlace firmado válido por 24 horas. Las solicitudes en lote, como hashear un grupo grande de registros durante una migración, funcionan igual, sin una ruta de código especial.
Cómo elegir el correcto
Si está protegiendo una contraseña, bcrypt, sin excepciones. Si está verificando integridad de datos o generando una huella, SHA-256 es la opción sensata por defecto, y SHA-512 está disponible cuando un resumen más largo vale los bytes adicionales. MD5 se incluye aquí por compatibilidad con sistemas antiguos que aún lo esperan, no como recomendación para nada sensible en materia de seguridad.
Qué puede hacer con ella
Hash de contraseñas en registro de usuarios
Hashee la contraseña de un usuario nuevo con bcrypt antes de guardarla en la base de datos, con el factor de trabajo y la sal ya incluidos en el resultado.
Verificación de integridad de archivos
Genere un resumen SHA-256 para archivos subidos, así los sistemas posteriores pueden confirmar que el archivo no se alteró antes de procesarlo.
Deduplicación en lote
Hashee un grupo grande de registros en una sola llamada para identificar duplicados comparando resúmenes en lugar de todo el contenido campo por campo.
Compatibilidad con checksums antiguos
Genere un checksum MD5 para integrarse con un sistema antiguo que todavía espera ese formato específico en verificaciones de archivos sin fines de seguridad.
Preguntas frecuentes
¿Qué algoritmos soporta esta api para generar hash sha256?
SHA-256, SHA-512, MD5 y bcrypt, cada uno devuelto en el formato adecuado según cómo se usa normalmente ese algoritmo.
¿Debo usar SHA-256 para hashear contraseñas?
No. SHA-256 es rápido por diseño, lo que lo hace inadecuado para contraseñas; use bcrypt en su lugar, porque su lentitud deliberada es justamente lo que protege contra ataques de fuerza bruta.
¿Es seguro usar MD5 todavía?
No para ningún fin de seguridad, se han demostrado ataques de colisión prácticos desde 2004. Se incluye aquí por compatibilidad con necesidades de checksum antiguas, no como recomendación de seguridad.
¿Puedo hashear datos en lote?
Sí, como las tareas corren de forma asíncrona, puede enviar lotes grandes para hashear sin bloquear su aplicación mientras se generan los resultados.
¿Hay plan gratuito?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta cada solicitud?
$0.002 por solicitud, y solo se cobra por las tareas que se completan con éxito.
¿Cómo recibo el hash generado?
POST /dev/hash devuelve un task_id de inmediato, y el resultado se entrega por webhook firmado o por un enlace firmado válido por 24 horas.
¿El resultado de bcrypt incluye la sal?
Sí, el formato de bcrypt incorpora la sal y el factor de trabajo directamente en la cadena de salida, así que no hace falta guardar nada adicional por separado para verificarlo después.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/hash \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/hash", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/hash",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/hash", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/hash", 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
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.hash",
"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. |