Hash
Genera hashes SHA-1, SHA-256, SHA-384, SHA-512
MD5 no está disponible — está criptográficamente roto y no está disponible en la API SubtleCrypto del navegador. Usa SHA-256 o más fuerte.
¿Qué es un hash criptográfico?
Una función hash criptográfica convierte cualquier entrada — un solo carácter, un documento de 5 páginas — en una cadena de longitud fija de dígitos hexadecimales. SHA-256 siempre produce 64 caracteres hex; SHA-512, 128. Dos propiedades cruciales: la misma entrada siempre produce el mismo hash, y es computacionalmente inviable encontrar dos entradas diferentes con el mismo hash (resistencia a colisiones).
Los hashes se utilizan para comprobaciones de integridad de archivos (¿descargando un archivo? compara su SHA-256 con el valor publicado), almacenamiento de contraseñas (los servidores almacenan el hash, no la contraseña), firmas HMAC y almacenamiento dirigido por contenido (Git usa SHA-1 para identificar commits).
Casos de uso
- Verificar la integridad de la descarga — compara un SHA-256 de un archivo descargado con el checksum listado por el editor.
- Detectar contenido duplicado — hashea cadenas o contenidos de archivos para detectar duplicados sin almacenar los originales.
- Construir claves de caché — convierte entradas largas (URLs, cadenas de consulta, cuerpos de solicitud) en claves de longitud fija para Redis o Memcached.
- Auditar artefactos de Git — calcula SHA-1 para inspeccionar direcciones de objetos blob/tree fuera de la plomería de Git.
Ejemplos
| Entrada | Resultado |
|---|---|
| hello | SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| (empty string) | SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
Preguntas frecuentes
¿Por qué no MD5?
MD5 está criptográficamente roto — se pueden generar colisiones en segundos en una laptop. La API SubtleCrypto del navegador no lo expone a propósito. Usa SHA-256 o más fuerte.
¿Puedo hashear un archivo?
Esta herramienta hashea la entrada de texto. Para hashear un archivo, escribe en la consola del navegador: `crypto.subtle.digest('SHA-256', await file.arrayBuffer())`.
¿Es el hash determinista entre ejecuciones?
Sí — SHA-256 de 'hola' siempre es el mismo valor. Las funciones hash son puras (sin sal, sin aleatoriedad) por diseño.
¿Debería usar SHA-1?
Evita para nuevas aplicaciones — ha sido roto para ataques de colisión. SHA-1 sigue siendo común para checksums de archivos y Git, pero usa SHA-256 para cualquier cosa relevante para la seguridad.
¿Se envía mi entrada a algún lado?
No. El hashing utiliza la API nativa de criptografía del navegador; nada sale de tu dispositivo.
