Desarrollo OAuth

Generador PKCECrea un par o comprueba el que ya tienes

Calcula S256 a partir del valor exacto y compara un desafío opcional.

Generador PKCE

Code verifier

Introduce de 43 a 128 caracteres ASCII: A–Z, a–z, 0–9, -, ., _, ~. Los espacios y saltos de línea no se eliminan.

Code challenge esperado (opcional)

Déjalo completamente vacío para omitir la comparación. En otro caso, introduce exactamente 43 caracteres Base64URL canónicos, sin relleno =.

Resultado S256

Una sintaxis válida no demuestra que el verificador introducido sea aleatorio o impredecible.

Los valores se procesan en esta página; la herramienta no los sube ni los guarda.

Opciones

La selección solo afecta a la próxima generación explícita. Los bytes se codifican en Base64URL sin relleno; SHA-256 siempre produce 256 bits.

Introduce un verificador o previsualiza uno nuevo para empezar.

Este generador PKCE permite investigar un error durante el intercambio de un código de autorización. Introduce el verificador original para reproducir su desafío, o genera uno aleatorio para iniciar una prueba nueva.

El verificador de código se conserva para la petición de token; el desafío se envía en la autorización. Si ambos coinciden, el cálculo es correcto, pero aún pueden existir errores en la URI de redirección o en la configuración del proveedor.

Por qué usar este generador PKCE

Aísla el cálculo que falla

El generador PKCE conserva tu entrada hasta que aplicas una sustitución. Puedes reproducir el desafío PKCE de una transacción existente sin generar por accidente otro verificador que ya no corresponda al código recibido.

Unos bytes aleatorios se convierten en un verificador y después, mediante un hash, en un desafío de longitud fija.

Distingue formato de coincidencia

Un desafío con espacios es inválido; uno canónico puede ser válido y pertenecer a otro verificador. El resultado separa esos casos para orientar la revisión de tu cliente.

Un mismo verificador se compara con dos desafíos candidatos: uno coincide y el otro no.

Comprueba una transacción sin mezclar sus valores

01

Conserva el verificador original

La página empieza vacía y no genera nada al abrirse. Los 32 bytes predeterminados producen 43 caracteres cuando solicitas la generación; cambiar el tamaño no cambia la entrada actual.

  • Para una autorización nueva, crea un verificador nuevo e impredecible.
02

Compara con el desafío enviado

Pega opcionalmente el desafío de la petición de autorización. Solo el campo totalmente vacío omite la comparación. El modo automático espera 350 ms tras editar; al desactivarlo aparecen Calcular y la opción Ctrl/Cmd+Enter.

  • Un espacio no equivale a un campo vacío.
03

Revisa la sustitución y el informe

Generar, cargar el ejemplo y borrar pasan por una vista previa con el número de caracteres afectados. Aplicar confirma; Deshacer recupera las entradas y el resultado anteriores. Después puedes exportar el informe completo.

  • No se puede copiar ni descargar un resultado desactualizado o con una vista previa abierta.

Del valor aleatorio al resultado comprobable

Cuatro tamaños de origen

32, 48, 64 y 96 bytes aleatorios producen verificadores de 43, 64, 86 y 128 caracteres. Se usa la fuente criptográfica del navegador, con generación explícita.

Derivación S256 exacta

Se calcula SHA-256 sobre los bytes ASCII del verificador. El resumen binario de 32 bytes se representa mediante 43 caracteres Base64URL sin relleno.

Comparación opcional

El resultado distingue coincidencia, discrepancia y cálculo sin comparación. El desafío esperado se valida antes de compararlo con el recién calculado.

Valores separados e informe completo

Copia el verificador o el desafío por separado. También puedes copiar o descargar JSON con el método, la longitud, la sintaxis, el valor esperado, la comparación y el origen aleatorio.

Reglas que determinan el resultado

Caracteres y longitud exactos
El verificador admite 43–128 caracteres ASCII no reservados. No se recortan espacios, normalizan letras ni decodifican secuencias URL. Las comillas o el relleno = causan un error.
Base64URL canónico
El desafío suministrado debe tener 43 caracteres y sus dos últimos bits de relleno deben ser cero. Otra escritura de los mismos bytes no se acepta como codificación canónica.
Solo S256
No hay método plain, inversión de SHA-256, inicio de sesión ni intercambio de tokens. La herramienta no prueba la configuración del servidor de autorización.
Entropía de origen, no garantía de seguridad
Los tamaños generan 256, 384, 512 o 768 bits aleatorios de origen. SHA-256 sigue produciendo 256 bits. La sintaxis de un verificador pegado no revela cuánta entropía tiene.
Un par por intento
No reutilices el par para nuevas autorizaciones. El ejemplo RFC es público y sirve únicamente para pruebas; no debe usarse como secreto de una sesión real.

Preguntas sobre el generador PKCE

¿Qué longitud debe tener el code_verifier?

Debe tener entre 43 y 128 caracteres ASCII del alfabeto permitido. Este generador PKCE parte de 32 bytes aleatorios de forma predeterminada, suficientes para producir 43 caracteres Base64URL sin relleno; también ofrece otros tres tamaños.

¿Qué diferencia hay entre S256 y plain?

S256 envía como desafío una representación Base64URL del resumen SHA-256 del verificador. Con plain, el desafío es el propio verificador. Esta página solo calcula S256 y no cambia automáticamente a plain.

¿En qué se diferencia Base64URL de Base64?

Base64URL sustituye + por - y / por _. Para S256 se elimina además el relleno =. Debes codificar el resumen binario de SHA-256, no el texto hexadecimal que muestra otra herramienta.

¿Por qué aparece «Transformed code verifier does not match code challenge»?

Comprueba que el verificador enviado al solicitar el token sea el mismo usado al iniciar esa autorización. Recalcula con el método indicado en la petición original; revisa si has regenerado el valor, incluido espacios o codificado un resumen hexadecimal.

¿Por qué OAuth2 rechaza mi code_verifier como inválido?

Revisa longitud, caracteres y correspondencia con la transacción. Un Base64 corriente puede incluir +, / o = y un salto de línea copiado cambia la entrada. Que el formato sea válido aquí no implica que el proveedor acepte el resto de la petición.

¿Has detectado un error de cálculo o validación?

Comprueba el par de tu próxima prueba

Utiliza el generador PKCE con los valores originales de la transacción y exporta el resultado actual después de revisar la coincidencia.