Qué herramienta de claves o hashes necesito
| Tu tarea | Herramienta |
|---|---|
| Leer un certificado: nombres, caducidad, huellas | Decodificador de certificados |
| Revisar una CSR antes de enviarla a una CA | Decodificador de CSR |
| Convertir entre PEM de texto y DER binario | PEM a DER, DER a PEM |
| Calcular la huella o convertir una clave pública SSH | Huella de clave SSH |
| SHA-256 de un texto o un archivo, en hex y Base64 | SHA-256 en Base64 |
| Content-MD5 y sumas de comprobación heredadas | MD5 en Base64 |
| Firmar un webhook o una petición a una API | Generador HMAC |
integrity="sha384-…" para un script o una hoja de estilos | Generador de hashes SRI |
| Una cadena Base64 aleatoria de cualquier longitud | Generador de Base64 aleatorio |
APP_KEY de Laravel, claves AES, secretos JWT y HMAC | Generador de claves Base64 |
| Un nonce para una Content Security Policy | Generador de nonces CSP |
| Cifrar o descifrar texto con una contraseña | Cifrar con AES, Descifrar AES |
Dónde se cruza Base64 con la criptografía
PEM es el Base64 de ASN.1 codificado en DER entre líneas -----BEGIN …-----. Lo usan los certificados, las CSR y las claves públicas y privadas. El DER en Base64 empieza por MII en la mayoría de los certificados y claves RSA, por MFkw en las claves públicas EC P-256 y por MCowBQYDK2Vw en las claves públicas Ed25519, así que el tipo suele verse antes de decodificar.
Las claves SSH usan otra estructura. La parte AAAAC3NzaC1lZDI1NTE5… de una línea ssh-ed25519 es el Base64 del blob de la clave, y la conocida huella SHA256:… es el hash en Base64 de ese blob, sin relleno.
Los hashes son bytes en bruto. El SHA-256 del texto hello son 32 bytes: 2cf24dba…9824 como 64 caracteres hex, o LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= como 44 caracteres Base64. Las firmas de webhooks, los atributos SRI y los encabezados Content-MD5 de S3 esperan la forma Base64, y compararla con un digest en hex es una fuente habitual de errores “signature mismatch”.
Los secretos aleatorios de los archivos de configuración suelen ser 32 bytes aleatorios en Base64, por ejemplo openssl rand -base64 32. El generador de claves produce el mismo formato, con ajustes predefinidos para los frameworks habituales.
Qué no hacen estas herramientas
- No verifican cadenas de certificados ni comprueban la revocación. La página no puede conectarse a otros servidores, a propósito.
- No muestran el material de las claves privadas. Las herramientas de certificados solo muestran el tipo y el tamaño de una clave privada, y la herramienta SSH solo lee la parte pública de un archivo de clave privada.
- MD5 y SHA-1 se ofrecen por compatibilidad con sistemas existentes. No los uses en diseños de seguridad nuevos.
Para firmar y verificar JWT, consulta las herramientas web y de tokens. Para entender por qué nada de este Base64 es secreto por sí mismo, lee codificación frente a cifrado.
Preguntas frecuentes
¿Por qué los hashes y las claves se escriben tan a menudo en Base64?
Porque es más corto que el hex. Un hash SHA-256 son 64 caracteres hex pero 44 en Base64, y una clave de 32 bytes necesita 44 caracteres Base64 en lugar de 64. Los atributos SRI, las huellas SSH, las firmas HMAC y la mayoría de los secretos de .env lo usan por eso.
¿Es Base64 una forma de cifrado?
No. Cualquiera puede revertir Base64. Una clave privada PEM es solo el Base64 de los bytes de la clave, y por eso hay que proteger el propio archivo. El cifrado de verdad, como en la herramienta AES, necesita una clave o una contraseña para deshacerse.
¿Son seguras las claves aleatorias?
Salen de crypto.getRandomValues del navegador, la misma fuente criptográficamente segura que usa WebCrypto para generar claves. No se guarda ni se envía nada, así que cada valor solo existe en tu pantalla hasta que lo copias.