# Générateur de Nonce et jetons

Génère des jetons à usage unique cryptographiquement sûrs pour les scénarios de sécurité web — jetons CSRF, paramètres state OAuth/OIDC, nonces de session et code_verifier/code_challenge PKCE (S256). Utilise crypto.randomBytes, jamais Math.random.

> Page canonique: https://elysiatools.com/fr/tools/nonce-generator

- **Catégorie:** Security

- **Mots-clés:** nonce, CSRF, OAuth, state, PKCE, jeton, session, sécurité

## Présentation

Cet outil génère des **jetons à usage unique à haute entropie** pour des scénarios spécifiques de sécurité web. Contrairement à un générateur générique de chaînes aléatoires, chaque scénario applique automatiquement les bonnes conventions.

Scénarios :
- **Jeton CSRF** : un jeton opaque lié à la session utilisateur et soumis avec les requêtes modifiant l'état (formulaires, AJAX) pour prouver que la requête vient de votre propre page.
- **State OAuth/OIDC** : une valeur non devinable envoyée au serveur d'autorisation et validée lors du callback de redirection, liant la réponse à cette requête et empêchant le login CSRF.
- **Nonce de session** : une valeur aléatoire à usage unique liée à une session pour empêcher la rejeu d'une requête.
- **PKCE Verifier + Challenge** : génère un `code_verifier` (gardé côté client) et dérive le `code_challenge = base64url(SHA256(verifier))` (envoyé au serveur d'auth) selon RFC 7636, de sorte qu'un code d'autorisation divulgué ne puisse être échangé sans le verifier. PKCE force l'encodage base64url et une longueur de verifier de 32-96 octets (43-128 caractères base64url).
- **Personnalisé** : un jeton opaque générique à haute entropie pour tout scénario à usage unique que vous définissez ; la longueur en octets est contrôlée par l'utilisateur (8-128).

Options :
- **Longueur en octets** : octets d'entropie. Verrouillée à 32 (256 bits) pour tous les scénarios prédéfinis ; modifiable (8-128) uniquement en Personnalisé.
- **Encodage** : base64url (sûr pour URL, par défaut pour les jetons web), hex ou base64. Forcé à base64url pour PKCE.
- **Ajouter un préfixe d'horodatage d'expiration** : ajoute `base36(secondesExpiration).jeton` pour que le serveur puisse rejeter les jetons expirés sans état (modèle recommandé par OWASP).
- **TTL (secondes)** : fenêtre de validité utilisée par le préfixe d'horodatage.
- **Quantité** : générer 1-50 jetons à la fois.

Sécurité : l'aléatoire vient de `crypto.randomBytes()` de Node — jamais `Math.random()`. Le challenge PKCE utilise SHA-256 via `crypto.createHash()`. Cet outil génère uniquement le matériel de jeton ; il ne stocke ni ne valide les jetons côté serveur.

## Entrées

- **Scénario** (select)
- **Longueur en octets** (number): e.g. 32
- **Encodage** (select)
- **Ajouter un préfixe d'horodatage d'expiration** (checkbox)
- **TTL (secondes)** (number): e.g. 300
- **Quantité** (number): e.g. 1

## Quand l'utiliser

- Lors de la configuration d'un flux d'authentification OAuth 2.0 ou OIDC pour générer un paramètre state unique et sécurisé.
- Pour sécuriser vos formulaires web et requêtes AJAX contre les attaques de type CSRF en générant des jetons à usage unique.
- Pour implémenter le protocole PKCE (RFC 7636) dans des applications clientes en générant un code_verifier et son code_challenge associé.

## Fonctionnement

- Sélectionnez le scénario de sécurité souhaité (CSRF, OAuth, PKCE, session ou personnalisé) pour appliquer automatiquement les règles de formatage adaptées.
- Définissez la longueur en octets, l'encodage (base64url, hex ou base64) et choisissez d'activer ou non le préfixe d'horodatage d'expiration.
- L'outil génère les jetons de manière sécurisée à l'aide de l'API cryptographique sous-jacente (crypto.randomBytes) et calcule le challenge SHA-256 si le mode PKCE est actif.

## Cas d'usage

- Génération de paires code_verifier et code_challenge conformes à la RFC 7636 pour sécuriser les applications mobiles ou SPA avec OAuth.
- Création de jetons CSRF opaques avec préfixe d'expiration pour protéger les formulaires de soumission de données.
- Production de nonces de session uniques pour empêcher les attaques par rejeu sur des requêtes sensibles.

## Questions fréquentes

### Quelle méthode est utilisée pour garantir le caractère aléatoire des jetons ?

L'outil utilise exclusivement la fonction cryptographique crypto.randomBytes de Node.js, garantissant une haute entropie, et n'utilise jamais Math.random().

### Qu'est-ce que le préfixe d'horodatage d'expiration ?

Il s'agit d'un préfixe au format base36 représentant le moment de l'expiration, permettant au serveur de valider la durée de vie du jeton de manière sans état (stateless).

### Comment fonctionne la génération PKCE dans cet outil ?

L'outil génère un code_verifier aléatoire encodé en base64url et calcule automatiquement son code_challenge correspondant en utilisant l'algorithme SHA-256 (S256).

### Puis-je générer plusieurs jetons à la fois ?

Oui, vous pouvez configurer le paramètre de quantité pour générer jusqu'à 50 jetons simultanément en un seul clic.

### Les jetons générés sont-ils stockés sur vos serveurs ?

Non, la génération s'effectue localement et aucun jeton n'est stocké ou validé côté serveur par notre outil.

## Outils associés

- [Générateur de cues de lecture synchronisée](https://elysiatools.com/fr/tools/audio-read-along-cue-generator): Génère des cues au niveau phrase ou mot avec timestamps à partir d'un audio et de son script.
- [Générateur moderne d'identifiants uniques](https://elysiatools.com/fr/tools/uid-generator): Génère des identifiants modernes : ULID, NanoID, Snowflake et CUID2. Comparez les formats, décodez l'horodatage ULID.
- [Note de Partage Securise AGEX](https://elysiatools.com/fr/tools/agex-secure-share-note): Genere une note claire pour expliquer au destinataire comment dechiffrer et verifier un bundle AGEX
- [Générateur de signature numérique](https://elysiatools.com/fr/tools/digital-signature-generator): Signe un message avec une clé privée ou vérifie une signature avec une clé publique — prend en charge RSA-PSS (SHA-256), ECDSA (P-256) et Ed25519. Cryptographie purement locale (Node crypto.createSign/createVerify), sans réseau. Collez une clé PEM pour signer ou vérifier une signature base64. Cet outil signe/vérifie ; il ne génère pas de paires de clés.
- [Générateur et Vérificateur HMAC](https://elysiatools.com/fr/tools/hmac-generator-verifier): Calcule une signature HMAC d’un message + secret avec SHA-1/SHA-2/SHA-3/BLAKE2, ou vérifie une signature entrante (comparaison en temps constant), avec préréglages Stripe / Slack / GitHub
- [Générateur et Analyseur JWK](https://elysiatools.com/fr/tools/jwk-generator): Génère des JSON Web Keys (JWK) pour RSA, EC (P-256/P-384/P-521/secp256k1) et OKP (Ed25519/Ed448/X25519/X448), ou analyse un JWK existant pour inspecter ses paramètres, empreinte et métadonnées
- [Générateur de OTP numériques](https://elysiatools.com/fr/tools/otp-generator): Génère des codes numériques à usage unique cryptographiquement sûrs (vérification SMS / e-mail, codes de tirage, PIN d'événement) avec longueur configurable (3-10 chiffres), sortie en lot, exclusion facultative des chiffres ambigus et compte à rebours d'expiration. Utilise crypto.randomInt, pas Math.random.
- [Générateur de PKCE Code Verifier et Challenge](https://elysiatools.com/fr/tools/pkce-code-verifier-generator): Génère, valide et vérifie les paires code_verifier / code_challenge PKCE (RFC 7636) OAuth2 / OIDC. Trois modes : (1) générer une nouvelle paire depuis des octets aléatoires cryptographiques (256/384/512/768 bits), (2) auditer un verifier existant selon le RFC — longueur (43–128), charset \[A-Za-z0-9-._~\] et ≥256 bits d'entropie, et (3) vérifier une paire en recalculant BASE64URL(SHA256(verifier)). Construit en option l'URL complète de requête d'autorisation et le corps d'échange de token. Complète le nonce-generator générique (qui n'émet que la paire) avec l'audit de conformité RFC et la vérification de paire.

## Exemples

- [Exemples de Traitement d'Images Android Java](https://elysiatools.com/fr/samples/android-image-processing-java): Exemples de traitement d'images Android Java incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Android Kotlin](https://elysiatools.com/fr/samples/android-image-processing-kotlin): Exemples de traitement d'images Android Kotlin incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format
- [Exemples de Traitement d'Images Web Rust](https://elysiatools.com/fr/samples/web-image-processing-rust): Exemples de traitement d'images Web Rust incluant lecture/écriture, redimensionnement et conversion de format

## Contenu associé

- [Outils de workflow pour tokens, sessions et 2FA](https://elysiatools.com/fr/hubs/token-session-and-2fa-workflows): Deboguez de vrais parcours de connexion avec generateurs PKCE et nonce, inspection JWT et JWK, verification HMAC, tests OTP et TOTP, et identifiants utiles a l authentification regroupes dans un seul hub.
- [Generateurs de schemas JSON, donnees mock et fixtures API](https://elysiatools.com/fr/hubs/json-generate): Des outils reunis pour generation de schemas JSON, construction de payloads mock et preparation de fixtures API dans un seul hub.
- [Generateurs d'effets CSS, palettes et design tokens](https://elysiatools.com/fr/hubs/design-generate): Des outils reunis pour effets visuels CSS, creation de palettes et generation de design tokens dans un seul hub.
- [Generateurs de mise en page et de modeles PDF imprimables](https://elysiatools.com/fr/hubs/pdf-generate): Des outils reunis pour generation de mise en page PDF imprimable et modeles reutilisables de documents dans un seul hub.
