Desenvolvimento OAuth

Gerador PKCEGere um par ou confira a correspondência

Calcule S256 usando o verificador exato e compare um desafio opcional.

Gerador PKCE

Code verifier

Use de 43 a 128 caracteres ASCII: A–Z, a–z, 0–9, -, ., _, ~. Espaços e quebras de linha não são removidos.

Code challenge esperado (opcional)

Deixe totalmente vazio para não comparar. Caso contrário, use exatamente 43 caracteres Base64URL canônicos, sem preenchimento =.

Resultado S256

Sintaxe válida não comprova que o verificador informado seja aleatório ou imprevisível.

Os valores são processados nesta página; a ferramenta não envia nem salva as entradas.

Opções

A escolha só afeta a próxima geração explícita. Os bytes viram Base64URL sem preenchimento; a saída SHA-256 continua com 256 bits.

Cole um verificador ou visualize um valor gerado para começar.

O gerador PKCE ajuda a preparar uma tentativa de autorização ou conferir os valores de uma tentativa em andamento. Cole o verificador original para obter o desafio correspondente; solicite um novo valor aleatório apenas quando precisar de outro par.

Guarde o verificador PKCE para a troca do código de autorização pelo token. O desafio acompanha a solicitação de autorização. A correspondência confirma o cálculo entre esses valores, sem validar a URI de redirecionamento nem as configurações do provedor.

Quando usar este gerador PKCE

Reproduza o desafio de uma tentativa

Durante a depuração, um novo verificador pode esconder a causa do erro. O gerador PKCE aceita o valor que seu cliente já usou e deriva o desafio PKCE correspondente, preservando a relação com aquela autorização.

Bytes aleatórios formam um verificador, que passa por um hash e produz um desafio de tamanho fixo.

Veja o que precisa de correção

Um caractere fora do alfabeto e um par válido que não corresponde exigem verificações diferentes. A validação exata mostra problemas de formato; o resultado da comparação indica se os valores pertencem ao mesmo par.

Um verificador é comparado com dois desafios: o primeiro corresponde e o segundo não.

Detalhes para conferir antes da troca pelo token

01

Escolha entre reproduzir e gerar

A página abre vazia, sem gerar aleatoriedade. A opção padrão de 32 bytes produz 43 caracteres quando você pede um novo valor. Alterar essa opção não modifica o verificador existente.

  • Uma nova tentativa de autorização precisa de um verificador novo e imprevisível.
02

Compare o desafio da solicitação

O campo opcional deve ficar totalmente vazio para pular a comparação. O cálculo automático espera 350 ms após uma edição; desative-o para usar Calcular ou Ctrl/Cmd+Enter.

  • Espaços no desafio esperado causam erro; eles não são tratados como ausência de valor.
03

Aplique a prévia conscientemente

Gerar, carregar o exemplo e limpar exibem a substituição e a contagem de caracteres antes de Aplicar. Desfazer restaura a captura anterior das entradas e do resultado. Só então exporte o que precisa.

  • Copiar e baixar ficam indisponíveis enquanto o resultado estiver desatualizado ou houver uma prévia aberta.

Geração, derivação e relatório

Bytes criptograficamente aleatórios

As opções de 32, 48, 64 e 96 bytes produzem 43, 64, 86 e 128 caracteres. A geração usa a fonte segura do navegador e só ocorre por uma ação explícita.

Desafio S256 de tamanho fixo

O cálculo usa os bytes ASCII exatos do verificador. O resumo binário SHA-256 tem 32 bytes e sua representação Base64URL sem preenchimento tem 43 caracteres.

Comparação com um valor existente

Cole o desafio enviado pelo cliente para saber se ele corresponde ao verificador atual. O relatório diferencia correspondência, divergência e cálculo sem comparação.

Exportação completa

Copie os dois valores separadamente ou copie e baixe o JSON completo. O relatório inclui método, comprimento, sintaxe, desafio esperado, comparação e informação sobre a fonte aleatória.

Limites do cálculo e da validação

Entrada sem correções silenciosas
O verificador aceita 43–128 caracteres ASCII não reservados. Não há remoção de espaços, normalização, conversão de maiúsculas ou decodificação de URL. Aspas e preenchimento = são rejeitados.
Base64URL canônico obrigatório
O desafio esperado precisa ter 43 caracteres. Os dois bits de preenchimento finais devem ser zero; uma grafia alternativa dos mesmos bytes não passa na validação.
Somente S256
Não há opção plain, recuperação do verificador a partir do hash, login ou troca de tokens. Uma correspondência local não testa a integração com o servidor OAuth.
Entropia depende da origem
Os tamanhos oferecidos correspondem a 256, 384, 512 ou 768 bits aleatórios de origem. Isso não define a força de segurança de PKCE: SHA-256 continua gerando 256 bits. Uma entrada manual válida pode ser previsível.
Não reutilize o exemplo
O vetor RFC é público e serve para testar o algoritmo. Gere um par novo para cada nova tentativa de autorização e mantenha o verificador original até concluir sua própria troca.

Dúvidas sobre o gerador PKCE

Qual deve ser o comprimento do code_verifier?

O intervalo permitido é de 43 a 128 caracteres. O gerador PKCE usa 32 bytes aleatórios por padrão, que resultam em 43 caracteres Base64URL sem preenchimento. Um texto longo não é necessariamente imprevisível: a origem dos caracteres também importa.

Qual é a diferença entre S256 e plain?

Com S256, o desafio é o resumo SHA-256 do verificador codificado em Base64URL. Com plain, o desafio repete o próprio verificador. Esta ferramenta oferece somente S256 e não faz fallback para plain.

Como Base64URL difere de Base64?

Base64URL troca + por - e / por _. No desafio S256, também se remove o preenchimento =. Codifique os bytes do resumo SHA-256 diretamente; codificar a representação hexadecimal produz outro resultado.

Por que o verifier usa esses caracteres?

O RFC permite letras ASCII, números e os símbolos -, ., _ e ~, que pertencem ao conjunto não reservado de URI. O gerador usa um subconjunto permitido, Base64URL sem preenchimento. Caracteres acentuados, espaços e + não fazem parte do alfabeto aceito.

Onde a ferramenta roda?

A geração e o cálculo ocorrem no navegador, nesta página, sem envio ou armazenamento das entradas pela ferramenta. SHA-256 requer WebCrypto disponível em um contexto seguro, como HTTPS ou localhost. Copiar e baixar são exportações explícitas.

Encontrou um erro no cálculo ou na validação?

Confira os valores da sua autorização

Use o gerador PKCE para reproduzir o desafio a partir do verificador original, conferir a correspondência e exportar o relatório atual.