Saltar al contenido

Generador de verificador y desafío PKCE

Genera un code_verifier criptográficamente aleatorio y su code_challenge correspondiente para OAuth 2.0 PKCE.

43
Salida

Generador de verificador y desafío PKCE

Esta herramienta genera un code_verifier PKCE y su code_challenge correspondiente para el flujo de Código de Autorización de OAuth 2.0, siguiendo RFC 7636. Está diseñada para desarrolladores que configuran aplicaciones de una sola página, aplicaciones móviles o cualquier cliente público que no puede mantener de forma segura un secreto de cliente y necesita Proof Key for Code Exchange para proteger el código de autorización de la interceptación.

El code_verifier es una cadena aleatoria criptográficamente segura construida solo a partir de caracteres no reservados de RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), con una longitud entre 43 y 128 caracteres — elige la longitud exacta con el control deslizante. El método de desafío controla cómo se deriva code_challenge: S256 genera un hash SHA-256 del verificador y codifica en base64url el resumen, y es lo que esperan todas las guías de OAuth actuales y los servidores de autorización. El método plain simplemente copia el verificador en el desafío sin cambios; existe en la especificación para clientes con recursos limitados que no pueden calcular SHA-256, no ofrece protección contra la interceptación, y esta herramienta lo marca en consecuencia.

El resultado incluye el code_verifier y code_challenge en bruto, el método que elegiste, y una cadena de consulta lista para usar — code_challenge=...&code_challenge_method=... — que puedes insertar directamente en una URL de solicitud de autorización. Recuerda el verificador por separado: pertenece a la solicitud de token posterior, no a la de autorización, y se debe generar un par nuevo para cada intento de inicio de sesión en lugar de reutilizarse.

Toda la generación ocurre localmente en tu navegador, utilizando la API Web Crypto para una fuente aleatoria criptográficamente segura e implementación de SHA-256 — nada se carga ni se registra en ningún lugar. Haz clic en "Generar nuevo par" para un verificador y desafío nuevo, copia el resultado, o descárgalo como archivo .txt.

Preguntas frecuentes

¿Qué es PKCE y por qué lo necesito?
PKCE (Proof Key for Code Exchange, RFC 7636) protege el flujo de Código de Autorización de OAuth 2.0 para clientes que no pueden mantener un secreto, como aplicaciones de una sola página y aplicaciones móviles. Vincula la solicitud de autorización a la solicitud de token con un secreto aleatorio para que un código de autorización robado no pueda ser redimido por otra persona.
¿Debo elegir S256 o plain?
Usa S256 a menos que tu cliente realmente no pueda calcular SHA-256. Con plain, code_challenge es idéntico a code_verifier, así que un atacante que intercepte la solicitud de autorización ya tiene todo lo necesario para intercambiar el código — S256 es lo que los servidores de autorización modernos esperan y a menudo el único método que aceptan.
¿Puedo reutilizar el mismo verificador y desafío para múltiples inicios de sesión?
No. Genera un nuevo par para cada intento de autorización. El verificador está destinado a ser un secreto único vinculado a un único flujo, no un valor fijo que tu aplicación codifique.
¿Dónde van el code_verifier y code_challenge cada uno?
code_challenge y code_challenge_method van en la URL de solicitud de autorización inicial. code_verifier se envía más tarde, en la solicitud de token que intercambia el código de autorización por tokens — mantenlo en memoria o en el almacenamiento de sesión del cliente hasta entonces.
¿Se carga el verificador generado en algún lugar?
No. La generación se ejecuta completamente en tu navegador utilizando la API Web Crypto. Nada se envía a un servidor, se registra, o se almacena más allá de tu propia sesión.