# Générateur de PKCE Code Verifier et Challenge

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.

> Page canonique: https://elysiatools.com/fr/tools/pkce-code-verifier-generator

- **Catégorie:** Security

- **Mots-clés:** pkce, oauth2, oidc, rfc 7636, code_verifier, code_challenge, s256, code d'autorisation, spa, mobile, client public, sha256, verifier, challenge, sécurité oauth

## Présentation

Un outil PKCE (Proof Key for Code Exchange, RFC 7636) spécialisé pour les développeurs OAuth2 / OIDC :

1. Choisissez un mode : Generate (une nouvelle paire), Validate (auditer un verifier que vous avez) ou Verify (vérifier qu'une paire verifier/challenge correspond).
2. Le mode Generate dérive un code_verifier d'octets aléatoires cryptographiques (32/48/64/96 octets = 256/384/512/768 bits) et l'encode en base64url, puis calcule code_challenge = BASE64URL(SHA256(verifier)). Le verifier reste côté client ; seul le challenge va au serveur d'autorisation.
3. Le mode Validate audite un verifier existant selon RFC 7636 : longueur 43–128 caractères, charset limité à [A-Za-z0-9-._~] et ≥256 bits d'entropie. Si conforme, affiche aussi le challenge S256 impliqué.
4. Le mode Verify recalcule BASE64URL(SHA256(verifier)) et le compare à un code_challenge fourni — utile pour déboguer "invalid_grant" ou un challenge incohérent lors de l'échange de token.
5. Renseignez optionnellement l'endpoint d'autorisation, le client ID et l'URI de redirection pour construire l'URL complète (avec code_challenge_method=S256) et le corps d'échange de token qui envoie le verifier secret.

Hors ligne et cryptographiquement solide : octets aléatoires issus du CSPRNG de la plateforme ; SHA256 via le module crypto. Aucun appel réseau, aucune valeur ne quitte le navigateur.

## Entrées

- **Mode** (select)
- **Longueur du verifier (octets d'entropie)** (select)
- **code_verifier existant (à valider)** (textarea): Paste a code_verifier here (used in Validate and Verify modes)
- **code_challenge existant (mode vérification paire)** (textarea): Paste the code_challenge to compare against (Verify mode)
- **Endpoint d'autorisation (optionnel, pour URL)** (text): https://auth.example.com/oauth2/authorize
- **Client ID (optionnel, pour URL)** (text): my-client-id
- **URI de redirection (optionnel, pour URL)** (text): https://app.example.com/callback

## Quand l'utiliser

- Lors de l'implémentation d'un flux d'autorisation OAuth2 / OIDC avec PKCE pour un client public comme une SPA ou une application mobile.
- Pour auditer la conformité d'un code_verifier existant par rapport aux exigences de longueur, de jeu de caractères et d'entropie de la RFC 7636.
- Pour déboguer une erreur de type 'invalid_grant' en vérifiant si un code_verifier correspond bien au code_challenge attendu.

## Fonctionnement

- Sélectionnez le mode souhaité : générer une nouvelle paire, valider un verifier existant, ou vérifier la correspondance d'une paire verifier/challenge.
- En mode génération, choisissez la longueur d'entropie (de 256 à 768 bits) pour dériver un code_verifier sécurisé via CSPRNG, puis calculez automatiquement le code_challenge via SHA256 encodé en Base64URL.
- Renseignez facultativement les paramètres de votre serveur d'autorisation (endpoint, client ID, redirect URI) pour obtenir l'URL de requête d'autorisation et le corps de la requête d'échange de token.
- Toutes les opérations s'exécutent localement dans votre navigateur à l'aide de l'API Web Crypto, garantissant qu'aucune clé ne transite sur le réseau.

## Cas d'usage

- Génération rapide de paires PKCE sécurisées pour configurer des environnements de test ou des clients OAuth2.
- Audit de conformité de jetons générés par des bibliothèques tierces pour s'assurer du respect strict de la RFC 7636.
- Résolution de problèmes d'intégration et de débogage des flux d'authentification en vérifiant manuellement la cohérence des paires verifier/challenge.

## Questions fréquentes

### Qu'est-ce que le PKCE et pourquoi l'utiliser ?

Le PKCE (Proof Key for Code Exchange) est une extension de sécurité pour OAuth2 (RFC 7636) qui protège l'échange du code d'autorisation contre l'interception, particulièrement sur les clients publics comme les SPA et applications mobiles.

### Comment le code_challenge est-il calculé à partir du code_verifier ?

Le challenge est calculé en appliquant un hachage SHA256 sur le verifier, puis en encodant le résultat en Base64URL (méthode S256).

### Quelles sont les contraintes de la RFC 7636 pour un code_verifier ?

Il doit mesurer entre 43 et 128 caractères et contenir uniquement des caractères non réservés : lettres, chiffres, tirets, points, underscores et tildes [A-Za-z0-9-._~].

### Cet outil envoie-t-il mes clés secrètes à un serveur ?

Non. La génération et la vérification s'effectuent localement dans votre navigateur via l'API Web Crypto. Aucune donnée n'est transmise sur le réseau.

### Pourquoi mon serveur d'autorisation renvoie-t-il une erreur 'invalid_grant' ?

Cela se produit souvent si le code_verifier envoyé lors de l'échange de token ne correspond pas au code_challenge initialement fourni lors de la demande d'autorisation. Utilisez le mode 'Verify' pour valider leur correspondance.

## Outils associés

- [Comparateur d’algorithmes de hachage](https://elysiatools.com/fr/tools/hash-algorithm-comparator): Hache la même entrée avec MD5, SHA-1, SHA-256, SHA-512, BLAKE2b et BLAKE3 et les compare : longueur, digest hex/Base64, statut de sécurité (cassé/moderne) et benchmark de vitesse relatif. Idéal pour l’enseignement, le choix d’algorithme ou la vérification de checksums.
- [Generateur de phrases mnémoniques BIP39](https://elysiatools.com/fr/tools/mnemonic-bip39-generator): Genere ou valide des phrases BIP39 de 12 a 24 mots avec entropie et seed PBKDF2-HMAC-SHA512
- [Générateur de hash de texte](https://elysiatools.com/fr/tools/text-hash-generator): Calcule MD5, SHA-1, SHA-256, SHA-512 et CRC-32 de tout texte d'un coup. Renvoie hex et Base64 sur l'encodage UTF-8.
- [Chiffrement / Déchiffrement RSA](https://elysiatools.com/fr/tools/rsa-encrypt-decrypt): Chiffre du texte avec une clé publique RSA ou déchiffre le texte chiffré avec la clé privée correspondante, en utilisant le padding OAEP (SHA-1 ou SHA-256). Gère les longs messages par blocs. Les clés et données restent locales. PKCS#1 v1.5 n'est pas proposé (Node le désactive pour le déchiffrement à cause des attaques Bleichenbacher).
- [Générateur de paire de clés SSH](https://elysiatools.com/fr/tools/ssh-key-generator): Génère une paire de clés SSH (Ed25519 recommandé, ou RSA 4096, ECDSA P-256) avec la clé publique au format OpenSSH prête pour ~/.ssh/authorized_keys, une empreinte SHA256 et une clé privée PEM. Chiffrement facultatif par phrase secrète. S'exécute localement.
- [Indice Thyroïdien (interprétation TSH/FT4/FT3)](https://elysiatools.com/fr/tools/thyroid-index): Interprète conjointement la TSH, la FT4 et (option) la FT3 pour évaluer l'axe thyroïdien. Référence adulte : 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 haute + FT4 basse → hypothyroïdie primaire franche (Hashimoto, post-ablation, carence iodée, amiodarone/lithium) ; TSH haute + FT4 normale → hypothyroïdie infraclinique ; TSH basse + FT4 haute (± FT3 haute) → hyperthyroïdie primaire franche (Basedow, nodule toxique, thyroidite précoce, iode/amiodarone) ; TSH basse + FT4 normale → hyperthyroïdie infraclinique ou hormone exogène ou thyroidite débutante — doser FT3 pour éliminer une T3-toxicose ; TSH normale/basse + FT4 basse → hypothyroïdie centrale (secondaire/tertiaire, atteinte hypophysaire/hypothalamique) ; TSH haute + FT4 haute → adénome à TSH ou résistance aux hormones thyroïdiennes ; tout normal → euthyroïdie (maladie non thyroïdienne : FT3 isolément basse). Précautions : rythme circadien de TSH (pic 22:00–02:00, nadir vespéral) ; dopamine, stéroïdes, maladie grave, cabergoline abaissent la TSH ; grossesse : seuils spécifiques par trimestre ; anticorps hétérophiles faussent TSH/FT4 ; amiodarone : thyrotoxicose de type 1 (iode) ou type 2 (destructive). Sources : ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. Non un avis médical.
- [Générateur de codes TOTP / HOTP hors ligne](https://elysiatools.com/fr/tools/totp-hotp-offline-generator): Génère des mots de passe à usage unique TOTP RFC 6238 (6/8 chiffres, 30/60 s) et HOTP RFC 4226 (par compteur) à partir d’un secret base32, hors ligne, avec HMAC-SHA1/256/512, et exporte une URI otpauth://
- [Générateur d'idées de noms de domaine IA](https://elysiatools.com/fr/tools/ai-domain-name-idea-generator): Entrez des mots-clés de marque : l'IA génère jusqu'à 10 idées de domaine, en filtrant les déjà pris via DNS + RDAP. Pour entrepreneurs et développeurs.

## Exemples

- [Exemples de Codes QR](https://elysiatools.com/fr/samples/qrcode-samples): Images de codes QR d'exemple pour tester les outils de lecture et de génération de codes QR
- [Exemples de Commentaires de Code](https://elysiatools.com/fr/samples/code-comment-samples): Fichiers de code d'exemple avec différents styles de commentaires pour tester la suppression de commentaires
- [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 Code avec Noms de Variables Invalides](https://elysiatools.com/fr/samples/code-invalid-variable-names-samples): Fichiers de code d'échantillon démontrant des conventions de nommage de variables invalides dans différents langages de programmation

## Contenu associé

- [Outils d encodage et de conversion audio](https://elysiatools.com/fr/hubs/audio-convert): Comparez la conversion de formats audio, les changements de debit, la conversion de frequence d echantillonnage, les changements de codec et les exports dans un meme hub.
- [Outils de conversion de formats d image et d export anime](https://elysiatools.com/fr/hubs/image-convert): Comparez les convertisseurs d image pour JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 et les exports orientes animation dans un meme hub.
- [Outils d interchange JSON et de traduction de formats](https://elysiatools.com/fr/hubs/json-convert): Comparez les outils de conversion JSON pour CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN et d autres formats structures dans un meme hub.
- [Outils de conversion d'espaces colorimetriques pour web et impression](https://elysiatools.com/fr/hubs/design-convert): Des outils reunis pour conversion d'espaces colorimetriques entre web et impression dans un seul hub.
