# Gerador de Nonce e Tokens

Gera tokens de uso único criptograficamente seguros para cenários de segurança web — tokens CSRF, parâmetros state OAuth/OIDC, nonces de sessão e code_verifier/code_challenge PKCE (S256). Usa crypto.randomBytes, nunca Math.random.

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

- **Categoria:** Security

- **Palavras-chave:** nonce, CSRF, OAuth, state, PKCE, token, sessão, segurança

## Visão geral

Esta ferramenta gera **tokens de uso único de alta entropia** para cenários específicos de segurança web. Diferente de um gerador genérico de strings aleatórias, cada cenário aplica automaticamente as convenções corretas.

Cenários:
- **Token CSRF**: um token opaco vinculado à sessão do usuário e enviado com requisições que alteram estado (formulários, AJAX) para provar que a requisição veio da sua própria página.
- **State OAuth/OIDC**: um valor não adivinhável enviado ao servidor de autorização e validado no callback de redirecionamento, vinculando a resposta a esta requisição e prevenindo login CSRF.
- **Nonce de Sessão**: um valor aleatório de uso único vinculado a uma sessão para evitar o replay de uma requisição.
- **PKCE Verifier + Challenge**: gera um `code_verifier` (mantido no cliente) e deriva o `code_challenge = base64url(SHA256(verifier))` (enviado ao servidor de auth) conforme RFC 7636, de modo que um código de autorização vazado não possa ser trocado sem o verifier. PKCE força codificação base64url e comprimento de verifier de 32-96 bytes (43-128 caracteres base64url).
- **Personalizado**: um token opaco genérico de alta entropia para qualquer cenário de uso único que você defina; o comprimento em bytes é controlado pelo usuário (8-128).

Opções:
- **Comprimento em bytes**: bytes de entropia. Fixado em 32 (256 bits) para todos os cenários predefinidos; editável (8-128) apenas em Personalizado.
- **Codificação**: base64url (seguro para URL, padrão para tokens web), hex ou base64. Forçado para base64url em PKCE.
- **Adicionar prefixo de timestamp de expiração**: antepõe `base36(segExpiração).token` para que o servidor possa rejeitar tokens expirados sem estado (padrão recomendado pela OWASP).
- **TTL (segundos)**: janela de validade usada pelo prefixo de timestamp.
- **Quantidade**: gerar 1-50 tokens de uma vez.

Segurança: a aleatoriedade vem de `crypto.randomBytes()` do Node — nunca `Math.random()`. O challenge PKCE usa SHA-256 via `crypto.createHash()`. Esta ferramenta apenas gera material de token; não armazena nem valida tokens no servidor.

## Entradas

- **Cenário** (select)
- **Comprimento em bytes** (number): e.g. 32
- **Codificação** (select)
- **Adicionar prefixo de timestamp de expiração** (checkbox)
- **TTL (segundos)** (number): e.g. 300
- **Quantidade** (number): e.g. 1

## Quando usar

- Ao implementar fluxos de autenticação OAuth 2.0 ou OpenID Connect que exigem um parâmetro state seguro para mitigar ataques de login CSRF.
- Ao configurar proteção contra Cross-Site Request Forgery (CSRF) em formulários web e requisições assíncronas usando tokens opacos.
- Ao desenvolver fluxos de autorização PKCE para aplicativos móveis ou de página única (SPA), necessitando de um code_verifier e seu respectivo code_challenge S256.

## Como funciona

- Selecione o cenário de segurança desejado, como Token CSRF, Estado OAuth, Nonce de sessão ou PKCE, ou escolha a opção personalizada para definir o tamanho em bytes.
- Configure as opções de codificação (base64url, hex ou base64) e ative o prefixo de timestamp de expiração com o tempo de vida (TTL) desejado para validação sem estado.
- A ferramenta gera instantaneamente os tokens de forma segura no navegador usando funções criptográficas nativas, exibindo os resultados prontos para cópia.

## Casos de uso

- Geração de pares code_verifier e code_challenge (S256) para testes de integração com provedores de identidade OAuth.
- Criação de tokens CSRF com tempo de expiração embutido (TTL) para proteção de endpoints de API.
- Geração de nonces aleatórios para cabeçalhos de Content Security Policy (CSP) ou prevenção de replay de requisições.

## Perguntas frequentes

### Como a ferramenta garante a segurança dos tokens gerados?

Os tokens são gerados localmente usando a API criptográfica segura crypto.randomBytes, garantindo alta entropia e imprevisibilidade.

### O que é o prefixo de timestamp de expiração?

É um prefixo em base36 adicionado ao token que codifica o momento exato de sua expiração, permitindo validação temporal sem estado no servidor.

### Por que o cenário PKCE força o uso de base64url?

Conforme a especificação RFC 7636, os parâmetros do PKCE devem ser seguros para transmissão via URL, o que exige a codificação base64url sem caracteres especiais de preenchimento.

### Os tokens gerados são salvos ou enviados para algum servidor?

Não. Toda a geração ocorre diretamente no seu navegador e nenhum dado ou token gerado é enviado ou armazenado em servidores externos.

### Posso gerar múltiplos tokens de uma só vez?

Sim, a ferramenta permite configurar a quantidade para gerar em lote de 1 até 50 tokens simultaneamente com as mesmas configurações.

## Ferramentas relacionadas

- [Gerador de cues de leitura sincronizada](https://elysiatools.com/pt/tools/audio-read-along-cue-generator): Gera cues a nível de frase ou palavra com timestamps a partir de áudio de narração e seu roteiro.
- [Gerador moderno de IDs únicos](https://elysiatools.com/pt/tools/uid-generator): Gera identificadores modernos: ULID, NanoID, Snowflake e CUID2. Compare formatos e decodifique o timestamp do ULID.
- [Nota Segura de Compartilhamento AGEX](https://elysiatools.com/pt/tools/agex-secure-share-note): Gera uma nota clara para que o destinatario saiba como descriptografar e verificar um bundle AGEX
- [Gerador de assinatura digital](https://elysiatools.com/pt/tools/digital-signature-generator): Assina uma mensagem com uma chave privada ou verifica uma assinatura com uma chave pública — suporta RSA-PSS (SHA-256), ECDSA (P-256) e Ed25519. Criptografia puramente local (Node crypto.createVerify/createSign), sem rede. Cole uma chave PEM para assinar ou verificar uma assinatura base64. Esta ferramenta assina/verifica; não gera pares de chaves.
- [Gerador e Verificador HMAC](https://elysiatools.com/pt/tools/hmac-generator-verifier): Calcula uma assinatura HMAC de mensagem + segredo com SHA-1/SHA-2/SHA-3/BLAKE2, ou verifica uma assinatura recebida (comparação em tempo constante), com presets para Stripe / Slack / GitHub
- [Gerador e Analisador de JWK](https://elysiatools.com/pt/tools/jwk-generator): Gera JSON Web Keys (JWK) para RSA, EC (P-256/P-384/P-521/secp256k1) e OKP (Ed25519/Ed448/X25519/X448), ou analisa um JWK existente para inspecionar parâmetros, impressão e metadados
- [Gerador de OTP numérico](https://elysiatools.com/pt/tools/otp-generator): Gera códigos numéricos de uso único criptograficamente seguros (verificação por SMS / e-mail, códigos de sorteio, PINs de evento) com comprimento configurável (3-10 dígitos), saída em lote, exclusão opcional de dígitos ambíguos e contagem regressiva de expiração. Usa crypto.randomInt, não Math.random.
- [Gerador de PKCE Code Verifier e Challenge](https://elysiatools.com/pt/tools/pkce-code-verifier-generator): 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.

## Exemplos

- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
- [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 Processamento de Imagem Web Rust](https://elysiatools.com/pt/samples/web-image-processing-rust): Exemplos de processamento de imagem Web Rust incluindo leitura/gravação, redimensionamento e conversão de formato

## Conteúdo relacionado

- [Ferramentas de fluxo para tokens, sessoes e 2FA](https://elysiatools.com/pt/hubs/token-session-and-2fa-workflows): Depure fluxos reais de login com geradores de PKCE e nonce, inspecao de JWT e JWK, verificacao HMAC, testes de OTP e TOTP e identificadores uteis para autenticacao reunidos em um unico hub.
- [Geradores de schema JSON, dados mock e fixtures de API](https://elysiatools.com/pt/hubs/json-generate): Ferramentas reunidas para geracao de schema JSON, construcao de payloads mock e preparacao de fixtures de API em um unico hub.
- [Geradores de efeitos CSS, paletas e tokens de design](https://elysiatools.com/pt/hubs/design-generate): Ferramentas reunidas para efeitos visuais em CSS, construcao de paletas e geracao de tokens de design em um unico hub.
- [Geradores de layout e modelos PDF imprimiveis](https://elysiatools.com/pt/hubs/pdf-generate): Ferramentas reunidas para geracao de layout PDF imprimivel e modelos reutilizaveis de documentos em um unico hub.
