Conversor de JWK a PEM (y al revés)
Los proveedores de identidad publican sus claves de firma como un JWKS: un documento JSON lleno de números en base64url. Casi todas las bibliotecas que verifican un token quieren un PEM en su lugar, y los dos formatos describen la misma clave con formas completamente distintas, así que el hueco acaba salvándose a mano más a menudo de lo debido. Esta herramienta convierte en ambos sentidos. Pega un JWK, un JWKS completo o una o varias claves públicas PEM, y cada clave vuelve en el otro formato junto con lo que realmente es: tipo de clave, tamaño RSA o curva elíptica, el algoritmo y el uso si la clave los declara, y la huella RFC 7638 — la huella canónica que identifica una clave sin importar qué campos la acompañen. La conversión la hace la propia implementación WebCrypto del navegador en lugar de ensamblar ASN.1 a mano, así que los bytes salen del mismo código que verifica firmas en tu navegador. No se sube nada, y si un JWK pegado contiene material de clave privada, los miembros privados se eliminan antes que nada, avisándote de ello.
Solo claves públicas. Los miembros privados se eliminan antes de leer la clave y no se sube nada.
Pega un JWK, un JWKS o una clave pública PEM para convertirla.
Cómo usar
- Pega un JWK, un documento JWKS o una clave pública PEM.
- Lee los detalles: tipo de clave, tamaño o curva y el algoritmo declarado.
- Copia el PEM para una biblioteca que lo pida, o el JWK para un JWKS.
- Usa la huella para comprobar que dos copias son de verdad la misma clave.
- Pega varios bloques PEM a la vez para convertir un conjunto entero.
Preguntas frecuentes
- ¿Qué es la huella RFC 7638?
- Un hash SHA-256 sobre un objeto JSON canónico que contiene solo los miembros que definen la clave — para RSA son e, kty y n, en ese orden y sin espacios. Como todo lo demás queda fuera, dos copias de la misma clave dan la misma huella aunque una lleve kid, alg y use y la otra no.
- ¿La huella es lo mismo que el kid?
- No necesariamente. El kid es como el emisor decidió llamar a la clave y puede ser cualquier cosa. Muchos emisores usan la huella RFC 7638 como kid, y por eso suelen coincidir, pero nada lo exige.
- ¿Puedo convertir una clave privada?
- No. Si un JWK pegado contiene miembros privados, se eliminan antes de leer la clave y solo se convierte la parte pública. En ningún caso se sube nada, pero una clave privada no pinta nada en una página web.
- ¿Qué tipos de clave funcionan?
- RSA y las curvas NIST P-256, P-384 y P-521, además de Ed25519 donde el navegador lo admita. Las curvas que WebCrypto no implementa — secp256k1, por ejemplo — no se pueden convertir aquí.
- ¿Por qué el JWK resultante no trae alg?
- Porque un PEM no lo lleva. Para leer la clave hay que indicar un algoritmo al importarla, así que cualquier alg en el resultado sería una suposición de esta herramienta y no algo que la clave dijera; por eso se quita.
- ¿Se sube mi clave?
- No. La conversión se ejecuta en tu navegador con su WebCrypto integrado y no se envía nada a ningún servidor.
Herramientas relacionadas
Conversor de Base64 a hexadecimal (y vuelta)
Convierte una cadena Base64 a bytes hexadecimales y hex de vuelta a Base64, con soporte URL-safe, en tu navegador.
Decodificador JWT
Decodifica un JSON Web Token para ver su cabecera, claims y expiración.
Generador de JWT
Construye y firma JWTs HS256 / HS384 / HS512 desde un header y payload — complemento del JWT Decoder.
Conversor Punycode
Convierte dominios internacionalizados entre Unicode (`münchen.de`) y ASCII Punycode (`xn--mnchen-3ya.de`).
Codificador y decodificador Base45
Codifica texto a Base45 y decodifica Base45 de vuelta a texto, según RFC 9285, en tu navegador.
Codificador y Decodificador Quoted-Printable
Codifica texto a MIME Quoted-Printable (RFC 2045) o decodifícalo — con escapes =XX, saltos de línea suaves y UTF-8 — todo en tu navegador, con ajuste de línea a 76 caracteres al codificar.