# Gerador de PKCE Code Verifier e Challenge

Gera, valida e verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Três modos: (1) gerar um par novo a partir de bytes aleatórios criptográficos (256/384/512/768 bits), (2) auditar um verifier existente frente ao RFC — comprimento (43–128), charset [A-Za-z0-9-._~] e ≥256 bits de entropia, e (3) verificar um par recalculando BASE64URL(SHA256(verifier)). Opcionalmente constrói a URL completa de autorização e o corpo de troca de token. Complementa o nonce-generator genérico (que só emite o par) com auditoria de conformidade RFC e verificação de pares.

> Página canônica: https://elysiatools.com/pt/tools/pkce-code-verifier-generator

- **Categoria:** Security

- **Palavras-chave:** pkce, oauth2, oidc, rfc 7636, code_verifier, code_challenge, s256, código de autorização, spa, móvel, cliente público, sha256, verifier, challenge, segurança oauth

## Visão geral

Uma ferramenta PKCE (Proof Key for Code Exchange, RFC 7636) focada para desenvolvedores OAuth2 / OIDC:

1. Escolha um modo: Generate (um par novo), Validate (auditar um verifier que você tem) ou Verify (verificar se um par verifier/challenge corresponde).
2. O modo Generate deriva um code_verifier de bytes aleatórios criptográficos (32/48/64/96 bytes = 256/384/512/768 bits) e codifica em base64url, depois calcula code_challenge = BASE64URL(SHA256(verifier)). O verifier fica no cliente; só o challenge vai ao servidor de autorização.
3. O modo Validate audita um verifier existente frente ao RFC 7636: comprimento 43–128 caracteres, charset limitado a [A-Za-z0-9-._~] e ≥256 bits de entropia. Se conforme, mostra também o challenge S256 implícito.
4. O modo Verify recalcula BASE64URL(SHA256(verifier)) e compara com um code_challenge fornecido — útil ao depurar "invalid_grant" ou challenge incompatível durante a troca de token.
5. Opcionalmente preencha o endpoint de autorização, client ID e redirect URI para construir a URL completa de requisição (com code_challenge_method=S256) e o corpo de troca de token que depois envia o verifier secreto.

Offline e criptograficamente sólido: bytes aleatórios do CSPRNG da plataforma; SHA256 via o módulo crypto. Sem chamadas de rede, nenhum valor sai do navegador.

## Entradas

- **Modo** (select)
- **Comprimento do verifier (bytes de entropia)** (select)
- **code_verifier existente (para validar)** (textarea): Paste a code_verifier here (used in Validate and Verify modes)
- **code_challenge existente (modo verificação)** (textarea): Paste the code_challenge to compare against (Verify mode)
- **Endpoint de autorização (opcional, para URL)** (text): https://auth.example.com/oauth2/authorize
- **Client ID (opcional, para URL)** (text): my-client-id
- **URI de redirecionamento (opcional, para URL)** (text): https://app.example.com/callback

## Quando usar

- Ao implementar fluxos de autorização OAuth2/OIDC com PKCE para aplicações SPA (Single Page Applications) ou dispositivos móveis.
- Para auditar se um code_verifier existente atende aos critérios de comprimento, conjunto de caracteres e entropia exigidos pela RFC 7636.
- Durante a depuração de erros de troca de token para verificar se um code_verifier corresponde ao code_challenge enviado.

## Como funciona

- Selecione o modo de operação desejado: gerar um novo par, validar um verifier existente ou verificar a correspondência de um par verifier/challenge.
- No modo de geração, defina o comprimento em bytes (32, 48, 64 ou 96 bytes) para derivar o verifier via CSPRNG e calcular o challenge usando BASE64URL(SHA256(verifier)).
- Opcionalmente, insira o endpoint de autorização, client ID e URI de redirecionamento para gerar a URL de requisição de autorização e o corpo da requisição de troca de token.
- O processamento é feito localmente no navegador, garantindo que nenhuma chave ou dado sensível seja transmitido pela rede.

## Casos de uso

- Geração rápida de pares code_verifier e code_challenge seguros para configurar clientes públicos em servidores de identidade como Auth0, Keycloak ou Okta.
- Auditoria de conformidade de strings de verificação geradas por bibliotecas customizadas para garantir que seguem estritamente a especificação RFC 7636.
- Resolução de problemas de integração OAuth2 verificando manualmente se o verifier enviado na troca de token gera o mesmo challenge registrado na autorização.

## Perguntas frequentes

### O que é PKCE?

Proof Key for Code Exchange (RFC 7636) é uma extensão de segurança para OAuth2 que protege a troca de códigos de autorização contra interceptações em clientes públicos.

### Como o code_challenge é calculado?

Ele é gerado aplicando o hash SHA256 sobre o code_verifier e codificando o resultado em formato Base64URL sem preenchimento (padding).

### Meus dados são enviados para algum servidor?

Não. Toda a geração, validação e cálculo de hash ocorrem localmente no seu navegador usando APIs criptográficas nativas.

### Quais são os requisitos de um code_verifier válido?

Deve ter entre 43 e 128 caracteres, conter apenas letras, números e os caracteres especiais '-', '.', '_', '~', além de possuir entropia mínima recomendada.

### Para que serve a opção de construir a URL de autorização?

Ela facilita o teste rápido do fluxo de login, montando a URL com os parâmetros corretos, incluindo o code_challenge e o code_challenge_method=S256.

## Ferramentas relacionadas

- [Comparador de algoritmos de hash](https://elysiatools.com/pt/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b e BLAKE3 à mesma entrada e compara: tamanho, digest hex/Base64, status de segurança (quebrado/moderno) e benchmark de velocidade relativa. Útil para ensino, escolha de algoritmo ou checagem de checksums.
- [Gerador de frases mnemônicas BIP39](https://elysiatools.com/pt/tools/mnemonic-bip39-generator): Gera ou valida frases BIP39 de 12 a 24 palavras com saída de entropia e seed PBKDF2-HMAC-SHA512
- [Gerador de hash de texto](https://elysiatools.com/pt/tools/text-hash-generator): Calcula MD5, SHA-1, SHA-256, SHA-512 e CRC-32 de qualquer texto de uma vez. Retorna hex e Base64 sobre a codificação UTF-8.
- [Criptografar / Descriptografar RSA](https://elysiatools.com/pt/tools/rsa-encrypt-decrypt): Criptografa texto com uma chave pública RSA ou descriptografa o texto cifrado com a chave privada correspondente, usando padding OAEP (SHA-1 ou SHA-256). Trata mensagens longas em blocos. Chaves e dados ficam locais. PKCS#1 v1.5 não é oferecido (Node o desabilita para descriptografia devido a ataques Bleichenbacher).
- [Gerador de par de chaves SSH](https://elysiatools.com/pt/tools/ssh-key-generator): Gera um par de chaves SSH (Ed25519 recomendado, ou RSA 4096, ECDSA P-256) com a chave pública no formato OpenSSH pronta para ~/.ssh/authorized_keys, uma impressão digital SHA256 e uma chave privada PEM. Criptografia opcional com senha. Executa localmente.
- [Índice Tireoidiano (interpretação TSH/FT4/FT3)](https://elysiatools.com/pt/tools/thyroid-index): Interpreta em conjunto TSH, FT4 e FT3 (opcional) para avaliar o eixo tireoidiano. Referência adulto: TSH 0.4–4.0 mIU/L, FT4 0.8–1.8 ng/dL (≈10–23 pmol/L), FT3 2.3–4.2 pg/mL (≈3.5–6.5 pmol/L). TSH alto + FT4 baixo → hipotireoidismo primário franco (Hashimoto, pós-ablação, deficiência de iodo, amiodarona/lítio); TSH alto + FT4 normal → hipotireoidismo subclínico; TSH baixo + FT4 alto (± FT3 alto) → hipertireoidismo primário franco (Graves, nódulo tóxico, tireoidite precoce, iodo/amiodarona); TSH baixo + FT4 normal → hipertireoidismo subclínico ou hormônio exógeno ou tireoidite inicial — dosar FT3 para excluir T3-toxicose; TSH normal/baixo + FT4 baixo → hipotireoidismo central (secundário/terciário, doença hipofisária/hipotalâmica); TSH alto + FT4 alto → adenoma produto de TSH ou resistência aos hormônios tireoidianos; todos normais → eutireoidiano (doença não tireoidiana pode ter FT3 isoladamente baixo). Precauções: ritmo circadiano do TSH (pico 22:00–02:00, nadir vespertino); dopamina, esteroides, doença grave e cabergolina suprimem TSH; na gestação usar faixas específicas por trimestre; anticorpos heterófilos falseiam TSH/FT4; amiodarona pode causar tireotoxicose tipo 1 (iodo) ou tipo 2 (destrutiva). Fontes: ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. Não é conselho médico.
- [Gerador de códigos TOTP / HOTP offline](https://elysiatools.com/pt/tools/totp-hotp-offline-generator): Gera senhas de uso único TOTP RFC 6238 (6/8 dígitos, 30/60 s) e HOTP RFC 4226 (por contador) a partir de um segredo base32, offline, com HMAC-SHA1/256/512, e exporta uma URI otpauth://
- [Gerador de ideias de domínio com IA](https://elysiatools.com/pt/tools/ai-domain-name-idea-generator): Insira palavras-chave da marca e a IA gera até 10 ideias de domínio, filtrando as já registradas via DNS + RDAP. Para empreendedores e desenvolvedores.

## Exemplos

- [Exemplos de Códigos QR](https://elysiatools.com/pt/samples/qrcode-samples): Imagens de código QR de exemplo para testar ferramentas de leitura e geração de código QR
- [Exemplos de Comentários de Código](https://elysiatools.com/pt/samples/code-comment-samples): Arquivos de código de exemplo com vários estilos de comentários para testar a remoção de comentários
- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos de Código com Nomes de Variáveis Inválidos](https://elysiatools.com/pt/samples/code-invalid-variable-names-samples): Arquivos de código de amostra demonstrando convenções de nomenclatura de variáveis inválidas em diferentes linguagens de programação

## Conteúdo relacionado

- [Ferramentas de codificacao e conversao de audio](https://elysiatools.com/pt/hubs/audio-convert): Compare conversao de formatos de audio, ajustes de bitrate, conversao de taxa de amostragem, troca de codec e exportacao em um unico hub.
- [Ferramentas de conversao de formatos de imagem e exportacao animada](https://elysiatools.com/pt/hubs/image-convert): Compare conversores de imagem para JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 e saidas voltadas para animacao em um unico hub.
- [Ferramentas de intercambio JSON e traducao de formatos](https://elysiatools.com/pt/hubs/json-convert): Compare ferramentas de conversao JSON para CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN e outros formatos estruturados em um unico hub.
- [Ferramentas de conversao de espacos de cor para web e impressao](https://elysiatools.com/pt/hubs/design-convert): Ferramentas reunidas para conversao de espacos de cor entre web e impressao em um unico hub.
