Toolonit
  1. Accueil
  2. Chiffrement
  3. Chiffrer / déchiffrer
  4. AES

Chiffrement et déchiffrement AES

Chiffrez et déchiffrez du texte en AES-128, 192 ou 256 : GCM, CBC, CTR et d’autres modes.

Chiffrer avec

Il vous faudra le même pour déchiffrer. Rien de ce que vous saisissez ne quitte cette page.

Itérations PBKDF2

La valeur par défaut d’OpenSSL est 10 000. Tout nombre convient : plus il est élevé, plus le mot de passe est lent à deviner ; pour déchiffrer, il faut le même nombre.

Mode

Le choix habituel avec OpenSSL. Demande un IV ; complète jusqu’à des blocs entiers.

Taille de clé
Sortie en
Équivalent OpenSSL
openssl enc -aes-256-cbc -pbkdf2 -iter 10000 -a -A

OpenSSL demande le mot de passe ; collez-y le texte, ou ajoutez des fichiers -in et -out.

Chiffrez un texte en AES-256 – ou en AES-128 ou AES-192 – avec un mot de passe ou avec votre propre clé et votre IV, ou collez un texte chiffré en AES, en Base64 ou en hexadécimal, pour le déchiffrer. Avec un mot de passe, le résultat a le même format qu’openssl enc -pbkdf2 : l’en-tête Salted__, un sel aléatoire de 8 octets puis le texte chiffré, la clé et l’IV étant dérivés par PBKDF2-HMAC-SHA256. Les réglages par défaut, AES-256 en mode CBC avec remplissage PKCS#7 et sortie Base64, correspondent à openssl enc -aes-256-cbc -pbkdf2 -a, et GCM, CTR, CFB, OFB et ECB sont à un clic. Le résultat se met à jour au fil de la frappe. Tout se passe dans votre navigateur : votre texte, votre mot de passe et votre clé ne quittent jamais votre appareil. C’est gratuit et sans inscription.

Comment chiffrer et déchiffrer un texte en AES

  1. Choisissez « Chiffrer » ou « Déchiffrer ». Saisissez le texte à chiffrer, ou collez le texte en Base64 ou en hexadécimal à déchiffrer : le format est détecté automatiquement.
  2. Saisissez un mot de passe (« Générer » en crée un solide), ou passez en mode « Clé et IV (hex) » et saisissez ou générez une clé et un IV de la longueur indiquée.
  3. Choisissez la taille de clé (128, 192 ou 256 bits) et le mode. Pour déchiffrer, reprenez le mot de passe, le nombre d’itérations, la taille de clé et le mode utilisés pour chiffrer.
  4. Copiez ou téléchargez le résultat, ou cliquez sur « Inverser » pour le placer dans l’entrée et changer de sens. Sous « Équivalent OpenSSL », la page affiche la commande openssl correspondante, sans votre mot de passe.

Fonctionnalités

  • AES-128, AES-192 et AES-256 en mode CBC, GCM, CTR, CFB, OFB ou ECB
  • Mode mot de passe au format openssl enc -pbkdf2 : en-tête Salted__, sel aléatoire de 8 octets, clé et IV dérivés par PBKDF2-HMAC-SHA256
  • 10 000 itérations PBKDF2 (la valeur par défaut d’OpenSSL), 100 000 ou 600 000, ou tout nombre jusqu’à 10 millions
  • Mode Clé et IV avec votre propre clé et votre IV en hexadécimal, ou des valeurs aléatoires via « Générer »
  • AES-GCM détecte un mauvais mot de passe ou une mauvaise clé, et toute modification du texte chiffré
  • Remplissage PKCS#7, ou aucun en CBC et ECB
  • Sortie en Base64 ou en hexadécimal ; entrée Base64 ou hexadécimale reconnue automatiquement
  • La commande openssl enc correspondante pour tous les modes sauf GCM

Est-ce confidentiel ?

Oui. AES s’exécute en WebAssembly dans votre navigateur, et le mot de passe est transformé en clé par Web Crypto, intégré au navigateur. Votre texte, votre mot de passe et votre clé ne sont jamais envoyés ni enregistrés, et la commande openssl affichée ne les contient jamais.

Questions fréquentes

Quel mode AES choisir ?

GCM pour de nouvelles données : en plus de chiffrer, il détecte toute modification du texte et un mauvais mot de passe. Choisissez CBC, le mode par défaut, quand l’autre partie utilise openssl enc, qui ne sait pas lire GCM ; ne prenez CTR, CFB ou OFB que pour vous aligner sur un système existant. Évitez ECB : deux blocs identiques de 16 octets donnent le même résultat, si bien que les motifs du texte restent visibles.

Puis-je déchiffrer le résultat avec OpenSSL ?

Oui, sauf en GCM. Avec les réglages par défaut : echo 'U2FsdGVkX1…' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -a -A (OpenSSL demande alors le mot de passe). Remplacez 256 et cbc par votre taille de clé et votre mode (ecb, ctr, cfb, ofb), la valeur de -iter par votre nombre d’itérations, et ajoutez -nopad si vous avez désactivé le remplissage ; pour une sortie hexadécimale, retirez -a -A et passez d’abord le texte dans xxd -r -p. En mode Clé et IV, utilisez -K <clé hex> -iv <IV hex> à la place de -pbkdf2 -iter. openssl enc refuse GCM (les chiffrements AEAD ne sont pas pris en charge) : un texte chiffré en GCM ne se lit donc qu’ici ou dans du code.

Pourquoi le résultat change-t-il à chaque fois ?

Parce que chaque chiffrement avec un mot de passe tire un nouveau sel aléatoire : la clé, l’IV et toute la sortie changent donc à chaque fois, et chaque version se déchiffre en le même texte. C’est voulu : personne ne peut savoir si deux messages sont identiques. En mode Clé et IV, la sortie se répète quand la clé et l’IV se répètent : générez donc un nouvel IV pour chaque message, car réutiliser un IV avec la même clé affaiblit CBC et casse CTR et GCM.

Pourquoi la page indique-t-elle un mauvais mot de passe ?

Parce qu’un réglage ne correspond pas : le mot de passe, le nombre d’itérations, la taille de clé, le mode et le remplissage doivent tous être ceux du chiffrement, et le texte ne stocke que le sel. Un texte qui commence par U2FsdGVkX1 mais qui a été produit par openssl enc sans -pbkdf2, ou par CryptoJS avec une phrase de passe, utilise une ancienne dérivation de clé (EVP_BytesToKey) que cette page ne lit pas : chiffrez-le à nouveau avec -pbkdf2, ou utilisez le mode Clé et IV si vous avez la clé et l’IV bruts.

Le chiffrement AES-256 est-il sûr ?

Oui. Il n’existe aucune attaque pratique contre AES, quelle que soit la taille de clé ; le point faible, c’est le mot de passe. Prenez-en un long et aléatoire (« Générer » en crée un) et, si vous maîtrisez les deux côtés, montez à 600 000 itérations, la valeur actuelle de l’OWASP pour PBKDF2-HMAC-SHA256. Choisissez GCM si vous devez aussi savoir que le texte n’a pas été modifié.

Outils associés