Skip to content

Outil de chiffrement AES — GCM, CBC et CTR

Chiffrement AES en ligne gratuit — AES-128/192/256, GCM/CBC/CTR, phrase secrète (PBKDF2) ou clé brute. 100 % dans votre navigateur ; rien n'est envoyé.

Sans pistage Fonctionne dans le navigateur Gratuit
Tout s'exécute dans votre navigateur — votre clé et vos données ne quittent jamais cette page.
Recommandé
Taille de clé
Type de clé
Options avancées
Texte chiffré
Besoin de la page de déchiffrement dédiée ?
Vérifié pour l'exactitude cryptographique par rapport à la FIPS 197, la NIST SP 800-38D, OWASP, et la spécification W3C Web Crypto — Équipe Sécurité Go Tools · 16 juil. 2026

Qu'est-ce que le chiffrement AES ?

L'AES (Advanced Encryption Standard) est un chiffrement symétrique par blocs standardisé par le NIST dans la FIPS 197 en 2001, basé sur la conception Rijndael de Joan Daemen et Vincent Rijmen. Il chiffre les données par blocs fixes de 128 bits à l'aide d'une clé de 128, 192 ou 256 bits, et la même clé sert à la fois à chiffrer et à déchiffrer. C'est le cheval de bataille de la cryptographie moderne, protégeant tout, du trafic HTTPS au chiffrement de disque.

Un chiffrement par blocs brut ne brouille qu'un seul bloc de 16 octets, donc l'AES s'exécute toujours à l'intérieur d'un mode opératoire qui enchaîne les blocs entre eux. Cet outil en propose trois, tous fournis nativement par l'API Web Crypto du navigateur : GCM, CBC et CTR. GCM (Galois/Counter Mode, NIST SP 800-38D) est la valeur par défaut recommandée car il est authentifié — il produit un tag d'authentification de 128 bits en plus du texte chiffré, si bien que toute altération est détectée au déchiffrement. CBC et CTR n'offrent que la confidentialité ; à eux seuls, ils ne peuvent pas indiquer si le texte chiffré a été altéré, ce qui explique pourquoi TLS 1.3 (RFC 8446) a abandonné toutes les suites de chiffrement CBC au profit de modes authentifiés comme GCM.

Vous remarquerez qu'il n'y a pas de mode ECB ici, et c'est délibéré. ECB chiffre chaque bloc de texte en clair identique vers le même bloc de texte chiffré, si bien que la structure à grande échelle transparaît directement — la célèbre image du « pingouin ECB » reste visiblement un pingouin après chiffrement. L'API Web Crypto omet ECB pour exactement cette raison (elle n'implémente que AES-CBC, AES-CTR et AES-GCM), et nous faisons de même. Si vous devez interopérer avec un système existant qui utilisait ECB, considérez cela comme une raison de le migrer, pas de reproduire cette faiblesse.

Comme la plupart des gens saisissent une phrase secrète plutôt qu'une clé aléatoire de 32 octets, l'outil dérive la clé AES à partir de votre phrase secrète avec PBKDF2-HMAC-SHA256 à 600 000 itérations et un sel aléatoire de 16 octets, conformément aux recommandations actuelles d'OWASP sur le stockage des mots de passe (et à la NIST SP 800-132, qui exige un sel d'au moins 128 bits). Cela rend lente la force brute contre une phrase secrète faible, mais ce n'est pas magique : c'est un outil pour apprendre les modes, déboguer du texte chiffré et gérer des données personnelles ponctuelles — pas pour protéger des secrets de production, qui relèvent d'un système de gestion de clés dédié. Pour une phrase secrète forte, générez-en une avec notre générateur de mot de passe aléatoire ; pour une vraie clé aléatoire, utilisez le générateur de clé secrète.

// AES-256-GCM with a passphrase (PBKDF2-HMAC-SHA256, 600,000 iterations).
// Identical code runs in the browser and in Node.js 20+ via Web Crypto.
async function aesGcmEncrypt(plaintext, passphrase) {
  const enc = new TextEncoder();
  const salt = crypto.getRandomValues(new Uint8Array(16));
  const iv = crypto.getRandomValues(new Uint8Array(12));
  const baseKey = await crypto.subtle.importKey(
    'raw', enc.encode(passphrase), 'PBKDF2', false, ['deriveKey']);
  const key = await crypto.subtle.deriveKey(
    { name: 'PBKDF2', salt, iterations: 600000, hash: 'SHA-256' },
    baseKey, { name: 'AES-GCM', length: 256 }, false, ['encrypt']);
  const ct = new Uint8Array(await crypto.subtle.encrypt(
    { name: 'AES-GCM', iv }, key, enc.encode(plaintext)));
  const packed = new Uint8Array([...salt, ...iv, ...ct]); // salt(16) | iv(12) | ct+tag
  return btoa(String.fromCharCode(...packed));            // self-contained Base64
}

Fonctionnalités clés

Chiffrement authentifié GCM par défaut

GCM produit le texte chiffré accompagné d'un tag d'authentification de 128 bits, si bien que le déchiffrement échoue bruyamment si un seul octet a été modifié. CBC et CTR sont à un clic quand vous devez interopérer avec eux.

Texte chiffré autonome

Le mode Phrase secrète regroupe le sel aléatoire, l'IV et le tag dans une seule chaîne Base64, si bien que la personne qui déchiffre n'a besoin que de la phrase secrète — il n'y a pas de champs séparés à copier ou à perdre.

Phrase secrète ou clé brute

Saisissez une phrase secrète (étirée avec PBKDF2-HMAC-SHA256, 600 000 itérations) ou collez une clé exacte de 128/192/256 bits en hexadécimal ou en Base64, avec un badge de nombre d'octets en direct qui confirme la longueur.

Sortie compatible OpenSSL

Activez le mode OpenSSL pour produire le format Salted__ que lisent la commande openssl enc et CryptoJS, avec la commande CLI équivalente affichée en direct pour que vous puissiez la reproduire dans un terminal.

100 % dans votre navigateur

Chaque octet est chiffré localement avec l'API Web Crypto. Ouvrez votre onglet Réseau et vous ne verrez rien quitter la page — cela fonctionne même hors ligne.

Sortie Base64 ou Hex

Copiez le résultat dans l'encodage qu'attend votre système cible, et inspectez les longueurs du sel, de l'IV, du texte chiffré et du tag dans le bandeau de détail des segments.

Exemples de chiffrement AES

GCM + phrase secrète (autonome, non déterministe)

The quick brown fox jumps over the lazy dog.
sel (16 o) + IV (12 o) + texte chiffré + tag (16 o), encodé en Base64 — une valeur différente à chaque exécution

Avec Mode GCM, Taille de clé 256, Type de clé Phrase secrète et la phrase secrète hunter2, cette phrase se chiffre en une seule chaîne Base64 autonome. Chiffrez-la deux fois et vous obtiendrez deux résultats complètement différents — c'est voulu. Le mode Phrase secrète génère un nouveau sel de 16 octets et un nouvel IV de 12 octets à chaque chiffrement, si bien qu'un texte en clair identique ne produit jamais un texte chiffré identique, et un observateur ne peut pas savoir que deux messages sont les mêmes. Le bandeau de segments sous la sortie montre la disposition exacte : le sel, puis l'IV, puis le texte chiffré avec son tag GCM de 128 bits ajouté à la fin. Pour déchiffrer, le destinataire n'a besoin que de la phrase secrète et du même mode et de la même taille de clé — le sel, l'IV et le tag voyagent tous à l'intérieur de la chaîne.

Sortie compatible OpenSSL (CBC + phrase secrète)

Attack at dawn!
U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=

Activez le mode compatible OpenSSL avec Mode CBC, Type de clé Phrase secrète, la phrase secrète correct-horse, KDF PBKDF2 et 10 000 itérations. L'outil produit alors le format Salted__ d'OpenSSL : du Base64 qui commence toujours par U2FsdGVkX1, l'encodage Base64 de l'en-tête Salted__ de 8 octets. Comme un nouveau sel aléatoire de 8 octets est généré à chaque fois, la chaîne exacte change à chaque exécution, mais chacune se déchiffre en ligne de commande avec : echo 'U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -pass pass:correct-horse -base64 -A — ce qui affiche Attack at dawn!. Choisissez EVP-MD5 plutôt que PBKDF2 pour correspondre à CryptoJS ou à OpenSSL 1.0.2 et antérieur. Notez que openssl enc ne prend pas en charge GCM, donc le mode OpenSSL est réservé à CBC.

Comment chiffrer du texte avec AES

  1. 1

    Choisissez un mode et une taille de clé

    Laissez Mode sur GCM (recommandé) et Taille de clé sur 256 pour le choix par défaut le plus solide et raisonnable. Passez à CBC ou CTR uniquement si un système que vous ciblez l'exige.

  2. 2

    Choisissez une phrase secrète ou une clé brute

    Laissez Type de clé sur Phrase secrète et saisissez une phrase secrète forte, ou passez à Clé brute et collez une clé exacte de 128/192/256 bits en hexadécimal ou en Base64. Le badge de nombre d'octets confirme si votre clé brute a une longueur valide.

  3. 3

    Saisissez le texte à chiffrer

    Tapez ou collez votre texte en clair. Le chiffrement s'exécute automatiquement au fil de la saisie, entièrement dans votre navigateur — aucun aller-retour par bouton, aucun envoi.

  4. 4

    Copiez le texte chiffré autonome

    Le résultat Base64 à droite contient déjà le sel, l'IV et le tag d'authentification. Utilisez le bandeau de segments pour voir la disposition des octets, puis cliquez sur Copier. Passez l'encodage de sortie en Hex si votre système cible l'attend.

  5. 5

    Déchiffrez-le quand vous en avez besoin

    Donnez le texte chiffré, la phrase secrète, et le même mode et la même taille de clé au destinataire, ou ouvrez la page de déchiffrement AES pour l'inverser vous-même.

Erreurs courantes de chiffrement AES

Confondre une phrase secrète avec une clé brute

Une clé brute doit faire exactement 16, 24 ou 32 octets de données aléatoires (saisis en hexadécimal ou en Base64) ; une phrase secrète est un texte quelconque et doit d'abord être étirée par un KDF. Choisir Clé brute et coller une phrase secrète humaine produit soit une erreur de longueur, soit une clé faible.

✗ Incorrect
Key type: Raw key
Key (hex): correct horse battery staple   (not hex, not 32 bytes)
✓ Correct
Key type: Passphrase
Passphrase: correct horse battery staple   (stretched with PBKDF2)

Réutiliser un IV avec la même clé

L'IV doit être unique par message sous une clé donnée. Le réutiliser est fatal pour GCM (cela peut divulguer la clé d'authentification) et brise la confidentialité pour CBC et CTR. Laissez l'outil générer un nouvel IV aléatoire à chaque fois.

✗ Incorrect
// same key, same IV for two messages
encrypt(key, iv, a); encrypt(key, iv, b);
✓ Correct
// fresh random IV each time (the default)
encrypt(key, randomIV(), a);

Perdre le sel, l'IV ou le tag

Si vous ne copiez que les octets du texte chiffré et laissez de côté le sel/IV préfixé — ou le tag GCM ajouté à la fin — les données ne pourront jamais être déchiffrées. Gardez toute la chaîne autonome, pas seulement son milieu.

✗ Incorrect
stored = ciphertext              // salt + IV + tag thrown away
✓ Correct
stored = salt + iv + ciphertext + tag   // the full Base64 string

S'attendre à ce que la sortie GCM soit identique à chaque exécution

GCM (et le mode Phrase secrète en général) utilise un sel et un IV aléatoires, si bien que le même texte se chiffre en une chaîne Base64 différente à chaque fois. C'est une fonctionnalité de sécurité, pas un bug — cela signifie qu'un espion ne peut pas savoir que deux textes chiffrés chiffrent le même message.

✗ Incorrect
assert(encrypt(msg) === encrypt(msg))   // fails — and should
✓ Correct
assert(decrypt(encrypt(msg)) === msg)   // this is what must hold

Ce que vous pouvez faire avec le chiffrement AES

Apprendre comment se comportent les modes AES
Basculez entre GCM, CBC et CTR avec la même entrée pour voir comment l'authentification, la longueur de l'IV et la taille du texte chiffré changent. Une façon concrète de comprendre ce que spécifie réellement la NIST SP 800-38D.
Produire un texte chiffré qu'un autre système peut lire
Générez une sortie au format Salted__ d'OpenSSL (ou sous forme de clé brute plus IV) pour qu'un backend, un script ou un collègue utilisant openssl ou une bibliothèque de chiffrement puisse la déchiffrer sans friction.
Chiffrer une courte note ou un extrait
Protégez un texte personnel ponctuel — une phrase de récupération que vous déplacez entre appareils, un extrait dans un ticket de support — avec une phrase secrète que vous seul connaissez. Pas pour des secrets réglementés ou de production.
Prototyper un format de chiffrement
Fixez ici la disposition sel/IV/tag et les réglages de KDF avant d'écrire le code, en utilisant le détail des segments pour confirmer l'ordre et les longueurs des octets.
Générer des vecteurs de test
Créez un texte chiffré connu avec une phrase secrète et un mode fixes pour alimenter vos propres tests de déchiffrement, puis vérifiez l'aller-retour sur la page de déchiffrement AES.

Modes AES et dérivation de clé

GCM (Galois/Counter Mode) — authentifié, recommandé
Confidentialité plus un tag d'authentification de 128 bits (NIST SP 800-38D). Il utilise un IV de 96 bits (12 octets), généré aléatoirement à chaque chiffrement, et le chiffrement comme le déchiffrement se parallélisent bien. La seule règle à ne jamais enfreindre : ne jamais réutiliser un IV avec la même clé. La SP 800-38D limite une même clé à environ 2^32 IV générés aléatoirement, et une répétition fuite le XOR de deux textes en clair et peut même exposer la clé d'authentification qui protège le tag. Le meilleur choix pour presque tout.
CBC (Cipher Block Chaining) — confidentialité seulement
Chaque bloc est XORé avec le bloc de texte chiffré précédent, à l'aide d'un IV aléatoire de 16 octets. Il n'a pas d'authentification intégrée, il doit donc être associé à un MAC séparé — chiffrer-puis-MAC, par exemple avec notre générateur HMAC — et il est historiquement sujet aux attaques par oracle de padding (Vaudenay, EUROCRYPT 2002). Proposé ici pour l'interopérabilité avec OpenSSL et les systèmes plus anciens.
CTR (Counter) — confidentialité seulement, façon flux
Transforme l'AES en chiffrement de flux en chiffrant un compteur, si bien que n'importe quelle longueur d'octets fonctionne sans padding et que les blocs se parallélisent librement. Comme CBC, il n'offre aucune intégrité à lui seul, et réutiliser le compteur/IV sous une même clé est catastrophique. Utile quand vous avez besoin d'un accès aléatoire ou d'une sémantique de flux.
ECB — non proposé (par conception)
Electronic Codebook chiffre chaque bloc indépendamment, si bien que des blocs de texte en clair identiques produisent un texte chiffré identique et que les motifs transparaissent — le célèbre « pingouin ECB ». L'API Web Crypto ne l'implémente délibérément pas, et nous non plus. Si un système existant exige ECB, considérez cela comme un bug à corriger plutôt qu'un format à reproduire.
Dérivation de clé : 600 000 vs 10 000 vs 1 itération
Dans le mode Phrase secrète par défaut, cet outil utilise PBKDF2-HMAC-SHA256 à 600 000 itérations (le même hachage SHA-256 appliqué des centaines de milliers de fois) avec un sel de 16 octets, selon OWASP. En mode compatible OpenSSL, PBKDF2 utilise par défaut seulement 10 000 itérations (la valeur par défaut d'openssl enc), et l'ancien KDF EVP_BytesToKey utilisé par CryptoJS et les anciennes versions d'OpenSSL n'effectue qu'une seule passe MD5 — des ordres de grandeur plus faible. Plus d'itérations signifient une force brute plus lente par essai, ce qui explique pourquoi la valeur par défaut moderne est tellement plus élevée. Argon2 et scrypt sont encore plus robustes, mais ne font pas partie de Web Crypto, donc ils sont hors du champ de cet outil ; pour le stockage de mots de passe, suivez OWASP et préférez Argon2id.

Bonnes pratiques de chiffrement AES

Préférez GCM sauf si un système impose autre chose
Le chiffrement authentifié détecte les altérations que CBC et CTR laissent passer silencieusement. Ne descendez vers CBC ou CTR que pour l'interopérabilité, et ajoutez un MAC si vous le faites.
Utilisez un nouvel IV aléatoire pour chaque message
L'outil le fait automatiquement. Si vous remplacez l'IV manuellement, ne réutilisez jamais un IV avec la même clé — pour GCM, une répétition est catastrophique, et pour CBC, cela brise la sécurité sémantique.
Choisissez des phrases secrètes fortes et de vraies clés aléatoires
PBKDF2 ralentit la force brute mais ne peut pas sauver une phrase secrète faible. Générez une phrase secrète longue avec le générateur de mot de passe, ou une vraie clé aléatoire avec le générateur de clé secrète.
Gardez le sel, l'IV et le tag avec le texte chiffré
Ils ne sont pas secrets, mais le déchiffrement échoue sans eux. Le format autonome de cet outil regroupe les trois ; si vous utilisez le mode clé brute en texte chiffré nu, copiez l'IV séparément et stockez-le à côté du texte chiffré.
Ne chiffrez aucun secret de production ou réglementé dans un outil en ligne
Même entièrement côté client, un outil de navigateur est fait pour l'apprentissage, le débogage et les usages personnels ponctuels. Les vrais secrets relèvent d'un système de gestion de clés éprouvé, avec une gestion et une rotation des clés auditées. L'AES-256 en lui-même est robuste — approuvé par la suite CNSA 2.0 de la NSA pour les informations jusqu'au niveau TOP SECRET — et les failles réelles viennent d'erreurs d'implémentation, pas du chiffrement.

FAQ sur le chiffrement AES

Est-il sûr de chiffrer du texte en ligne ?
Avec cet outil, le chiffrement lui-même se déroule entièrement dans votre navigateur — votre texte, votre phrase secrète et votre clé ne voyagent jamais vers un serveur, ce que vous pouvez vérifier en observant l'onglet Réseau. Cela le rend sûr pour l'apprentissage, le débogage et les données personnelles ponctuelles. Ce n'est pas l'endroit adapté pour des secrets de production, des données réglementées, ou tout ce qui relève d'une gestion de clés à long terme, et c'est vrai pour n'importe quel outil en ligne : une page de navigateur ne peut pas vous offrir un stockage de clés audité, une rotation ou un contrôle d'accès. Chiffrez ici des éléments jetables et personnels, et gardez les vrais secrets dans un système dédié.
Peut-on déchiffrer l'AES sans la clé ?
Non. L'AES n'a aucune faille pratique connue, donc sans la clé ou la phrase secrète il n'y a aucun raccourci — un attaquant en est réduit à essayer les clés une par une. L'AES-256 compte 2^256 clés possibles ; même à mille milliards de milliards d'essais par seconde, il faudrait bien plus longtemps que l'âge de l'univers pour en explorer une fraction significative. Les risques réels ne viennent jamais du chiffrement lui-même : ce sont une phrase secrète faible, un IV réutilisé, une clé divulguée, ou un oracle de padding dans un système mal conçu. Choisissez une phrase secrète forte et aucun de ces problèmes ne s'applique. Quiconque annonce une « récupération AES » sans clé vend une arnaque.
GCM ou CBC — quel mode utiliser ?
Utilisez GCM. Il offre la confidentialité plus un tag d'authentification intégré de 128 bits, si bien que si un seul octet du texte chiffré est modifié, le déchiffrement échoue au lieu de renvoyer silencieusement des données corrompues. CBC ne fait que masquer les données ; à lui seul il ne peut pas détecter une altération et a un long historique de vulnérabilités de type oracle de padding (Vaudenay, EUROCRYPT 2002), ce qui explique pourquoi TLS 1.3 (RFC 8446) a supprimé toutes les suites de chiffrement CBC. La seule bonne raison de choisir CBC ici est l'interopérabilité avec un système existant — par exemple la commande enc d'OpenSSL, qui ne prend pas en charge GCM.
AES-128 ou AES-256 — le 256 en vaut-il la peine ?
Les deux sont considérés comme sûrs ; l'AES-128 n'est pas cassé et est légèrement plus rapide. L'AES-256 a une clé plus grande et une marge de sécurité plus large, et c'est la taille approuvée par la suite CNSA 2.0 de la NSA pour les informations jusqu'au niveau TOP SECRET, ce qui en fait un choix par défaut raisonnable. Le coût est minime — quelques tours supplémentaires par bloc. Sauf si vous optimisez un chemin d'exécution très sollicité, chiffrez avec AES-256 ; la marge de sécurité supplémentaire est pratiquement gratuite dans la pratique.
Mes données sont-elles envoyées quand je chiffre ici ?
Non. Tout le chiffrement s'exécute localement via l'API Web Crypto du navigateur (crypto.subtle), la même implémentation auditée que votre navigateur utilise pour HTTPS. Rien de ce que vous saisissez n'est envoyé où que ce soit — vous pouvez ouvrir le panneau Réseau des outils de développement, chiffrer quelque chose, et observer zéro requête se déclencher, ou couper entièrement votre connexion internet et l'outil fonctionne toujours. SubtleCrypto n'est disponible que dans des contextes sécurisés (HTTPS), ce qui explique en partie pourquoi cette garantie tient.
Quelle est la différence entre une phrase secrète et une clé ?
Une clé est exactement 128, 192 ou 256 bits de données aléatoires — pour l'AES-256, cela représente 32 octets bruts, généralement écrits en hexadécimal ou en Base64. Une phrase secrète est un texte saisi par un humain, de longueur quelconque, et n'est pas une clé en soi : elle doit être étirée en une clé par une fonction de dérivation de clé. Cet outil le fait automatiquement en mode Phrase secrète avec PBKDF2-HMAC-SHA256, 600 000 itérations, et un sel aléatoire. Confondre les deux — coller une phrase secrète dans le champ de clé brute, ou l'inverse — est l'une des raisons les plus courantes pour lesquelles deux systèmes ne s'accordent pas sur un texte chiffré. (Pour des jetons signés plutôt qu'un chiffrement, consultez l'encodeur JWT.)
Puis-je chiffrer pour qu'OpenSSL ou CryptoJS puisse déchiffrer ?
Oui. Activez le mode compatible OpenSSL (avec AES-CBC et une phrase secrète) et l'outil produit le format Salted__ que comprennent la commande openssl enc et CryptoJS, et il vous montre la commande openssl équivalente exacte. Choisissez la fonction de dérivation de clé correspondante : PBKDF2 pour l'OpenSSL moderne (la valeur par défaut d'openssl -pbkdf2 est 10 000 itérations), EVP-SHA256 pour OpenSSL 1.1+ sans -pbkdf2, ou EVP-MD5 pour CryptoJS et OpenSSL 1.0.2 et antérieur. Pour faire l'inverse et lire le texte chiffré de quelqu'un d'autre, utilisez l'outil de déchiffrement AES.

Outil de déchiffrement AES — compatible OpenSSL et CryptoJS

Outils de sécurité

Déchiffrez de l'AES en ligne — GCM/CBC/CTR, phrase secrète ou clé brute, détection automatique du format OpenSSL et CryptoJS « U2FsdGVkX1 ». 100 % dans le navigateur, les clés ne quittent jamais la page.

Générateur et vérificateur de hachage Bcrypt

Outils de sécurité

Générez et vérifiez des hachages bcrypt en ligne — coût ajustable, préfixes $2b$/$2a$/$2y$. 100 % dans votre navigateur ; mot de passe jamais envoyé.

Générateur HMAC & vérificateur de signature

Outils de sécurité

Générateur et vérificateur HMAC en ligne gratuit. Calculez HMAC-SHA256/SHA1/SHA384/SHA512 avec des clés en texte, hex ou Base64 et une sortie Hex/Base64/Base64URL. 100 % dans votre navigateur — les clés ne quittent jamais la page.

Décodeur JWT

Outils de sécurité

Décodez des jetons JWT en ligne avec notre décodeur JWT gratuit. Inspectez en-tête, charge utile, signature, expiration et revendications. 100 % navigateur — votre jeton ne quitte jamais votre appareil. Sans inscription ni suivi.

Encodeur & Générateur JWT

Outils de sécurité

Générateur & encodeur JWT gratuit en ligne. Construisez l'en-tête et la charge utile, signez avec HS256, RS256 ou ES256 instantanément. 100 % navigateur — votre secret et votre clé ne quittent jamais votre appareil.

Générateur de secret JWT gratuit — HS256/384/512

Outils de sécurité

Générez un secret JWT robuste pour HS256/384/512 — 100 % dans votre navigateur, jamais envoyé. base64url, base64 ou hex ; à copier pour .env.