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

EntradaResultado
helloSHA-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.