Puedes inspeccionar hashes, HMAC, cifrado y JWT en el navegador. Mantén los datos en el dispositivo y elige el algoritmo según el objetivo.
Una función hash genera un resumen de tamaño fijo a partir de una entrada de cualquier longitud. Los mismos bytes producen el mismo resultado; cambiar incluso un salto de línea puede alterarlo. El generador de hashes permite comparar sumas de comprobación y datos de prueba.
MD5 produce 128 bits, equivalentes a 32 caracteres hexadecimales, y SHA-1 produce 160 bits. Ambos tienen ataques de colisión conocidos y no deben usarse para nuevas firmas ni para verificar integridad frente a atacantes. MD5 aún aparece en comprobaciones de cambios accidentales.
SHA-256 y SHA-512 pertenecen a SHA-2 y producen 256 y 512 bits. SHA-512 puede ser más rápido en hardware de 64 bits, según la implementación. Un hash rápido por sí solo no sirve para almacenar contraseñas: utiliza Argon2id, scrypt o bcrypt bien configurado, con salt.
HMAC combina una función hash con una clave secreta compartida. Un valor válido confirma integridad y conocimiento de esa clave, pero no demuestra una identidad pública. El generador HMAC ayuda a reproducir firmas durante el desarrollo.
AWS Signature Version 4 utiliza HMAC-SHA256, claves derivadas y una petición canónica. Método, ruta, encabezados y hash del cuerpo deben procesarse según la especificación; calcular solo el hash del cuerpo no genera una firma AWS válida.
GitHub entrega su firma de webhook en X-Hub-Signature-256. Stripe usa Stripe-Signature e incluye una marca temporal en el cálculo. Verifica los bytes originales de la petición, compara las firmas en tiempo constante y aplica protección contra repeticiones. JWT HS256 también usa HMAC-SHA256.
AES es simétrico: la misma clave secreta cifra y descifra. Además de la longitud de clave, el modo importa. AES-GCM utiliza una etiqueta de autenticación y exige no reutilizar el nonce con una misma clave. La herramienta AES permite estudiar casos de prueba.
RSA utiliza una clave pública y otra privada. Debido a sus límites de tamaño y coste, normalmente cifra una clave simétrica aleatoria en lugar de un archivo completo. AES procesa después los datos de la aplicación.
No uses RSA sin padding. La herramienta RSA emplea RSA-OAEP; al intercambiar datos, confirma el algoritmo hash y el formato de las claves. El cifrado RSA-OAEP no equivale a una firma RSA. Protege siempre las claves privadas y el texto descifrado.
Un JWT firmado en formato compacto JWS tiene tres partes Base64url separadas por puntos: encabezado, payload y firma. {"alg":"HS256","typ":"JWT"} indica HMAC-SHA256, mientras RS256 identifica una firma RSA con SHA-256.
El payload contiene claims como sub, iss, aud, exp e iat: sujeto, emisor, destinatario, caducidad y emisión. El decodificador JWT los hace legibles. Decodificar no verifica la firma ni demuestra que el token deba aceptarse.
Fija los algoritmos permitidos en el servidor y valida firma, emisor, destinatario y caducidad. No confíes sin comprobación en alg ni aceptes accidentalmente none. Una firma JWS no cifra el payload; para confidencialidad necesitas cifrado, por ejemplo JWE.
No. SHA-256 es un hash rápido de propósito general, lo que facilita el ataque de fuerza bruta a las contraseñas. Usa bcrypt, scrypt o Argon2 en su lugar — están diseñados para ser lentos y exigentes en memoria. Nuestro Generador de Contraseñas crea contraseñas fuertes; el almacenamiento debe usar bcrypt/Argon2 en tu servidor.
La codificación (como Base64) transforma los datos para lograr compatibilidad — es reversible sin una clave. El cifrado (como AES) protege la confidencialidad — solo es reversible con la clave correcta. Nunca uses Base64 como medida de seguridad.
Lee exp con el decodificador JWT y compáralo con la hora Unix actual. Que no haya caducado no demuestra una firma válida; verifica también firma, emisor y destinatario en el servidor.
Sí, cuando se usa crypto.getRandomValues(), que es lo que usa nuestro Generador de Contraseñas. Este es el CSPRNG del navegador, la misma fuente de entropía que usa el sistema operativo para la generación de claves.
AES-256 para todas las aplicaciones nuevas. AES-128 es técnicamente seguro frente a los ataques conocidos, pero AES-256 ofrece un margen mayor. La diferencia de rendimiento es insignificante en el hardware moderno.