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.
Ejecutar — gratis
Esta api para generar hash sha256 produce resúmenes SHA-256, SHA-512, SHA-1 y MD5, además de hashes de contraseña bcrypt con sal, bajo demanda, para que las verificaciones de integridad, las huellas y el almacenamiento de contraseñas no dependan de que cada servicio reimplemente correctamente la misma pieza.
Seis algoritmos, tareas distintas
SHA-256, SHA-384 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. SHA-1 se admite todavía por compatibilidad, pero está desaconsejado para cualquier uso de seguridad desde que sus colisiones se volvieron prácticas. 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 la premisa de todos ellos: es deliberadamente lento, con un factor de trabajo ajustable y una sal aleatoria incrustada en cada hash, porque encarecer cada intento es justo el objetivo cuando lo que se protege es una contraseña.
Qué hace POST /dev/hash
Envíe el texto de entrada y el algoritmo deseado, y recibirá el resumen en hexadecimal en minúsculas, salvo con bcrypt, que devuelve su cadena estándar de 60 caracteres con la sal y el factor de trabajo incrustados, lista para almacenar y verificar tal cual. La forma de la solicitud es idéntica para todos los algoritmos, solo cambia el campo del algoritmo, de modo que pasar de SHA-256 a SHA-512, a un checksum MD5 heredado o a un hash de contraseña bcrypt nunca implica una ruta de código distinta de su lado.
Dónde aparece SHA-256 en particular
Publicado por un organismo nacional de normalización 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, los flujos de registro que hashean una contraseña con bcrypt antes de que toque la base de datos, y las cachés direccionadas por contenido que se indexan por el resumen, todos llaman a este endpoint de la misma forma: envíe, reciba un task_id, y obtenga 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á 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. SHA-1 y MD5 se incluyen aquí por compatibilidad con sistemas antiguos que aún los esperan, no como recomendación para nada sensible en materia de seguridad. Y si está protegiendo una contraseña, bcrypt es la elección correcta: un hash de contraseña deliberadamente lento y con sal, lo contrario de los resúmenes de integridad rápidos, con un factor de trabajo que puede subir a medida que el hardware se acelera.
Qué puede hacer con ella
Hashing de contraseñas en el registro
Hashee la contraseña de un usuario nuevo con bcrypt antes de escribirla en su base de datos, con la sal y el factor de trabajo ya incrustados en la cadena de 60 caracteres y verificados después con una comparación de tiempo constante.
Huellas direccionadas por contenido
Genere un resumen SHA-256 para indexar archivos o registros en un almacén direccionado por contenido, de modo que entradas idénticas produzcan siempre la misma huella y los duplicados se colapsen solos.
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-384, SHA-512, SHA-1 y MD5, cada uno devuelto como un resumen hexadecimal en minúsculas, además de bcrypt, devuelto como su cadena estándar de 60 caracteres con sal para hashing de contraseñas.
¿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. Para contraseñas, elija el algoritmo bcrypt que ofrece este endpoint: es deliberadamente lento y con sal, así que cada intento le resulta caro a un atacante.
¿En qué se diferencia bcrypt de los demás algoritmos?
bcrypt es una función de hashing de contraseñas, no un hash de integridad rápido. Incrusta una sal aleatoria en cada hash y le permite fijar un factor de trabajo (cost, acotado de 4 a 15), de modo que la misma contraseña produce una salida de 60 caracteres distinta cada vez y la verificación es una comparación de tiempo constante. Úselo para contraseñas; use SHA-256 para huellas e integridad.
¿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.
¿Qué algoritmo elijo para una huella?
SHA-256 es la opción por defecto para huellas y verificaciones de integridad: longitud fija, ampliamente soportado, y un margen de seguridad que se ha sostenido por más de dos décadas. Recurra a SHA-512 solo cuando un resumen más largo valga los bytes adicionales.
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/dev/hash \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hola mundo"}'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({
"text": "hola mundo"
})
});
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={
"text": "hola mundo"
},
)
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" => '{"text":"hola mundo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hola mundo"}`)
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
{
"text": "hola mundo"
}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. |