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.