Outil de déchiffrement AES
Déchiffrez du texte AES-128/192/256 : données OpenSSL « Salted__ » (U2FsdGVkX1…), sortie CryptoJS ou clé + IV bruts en hex (CBC, GCM, CTR, CFB, OFB, ECB).
La sortie utilise le format OpenSSL « Salted__ » en Base64 : un sel aléatoire de 8 octets suivi du texte chiffré. La clé et l’IV sont dérivés de la phrase secrète et du sel : le même texte donne donc un résultat différent à chaque fois. Commande équivalente :
openssl enc -aes-256-cbc -d -md md5 -a -A -k '…'S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.
Qu'est-ce que Déchiffrement AES ?
Déchiffre du texte chiffré AES dans le navigateur. Il lit le format OpenSSL « Salted__ » (chaînes Base64 commençant par U2FsdGVkX1) produit par openssl enc et CryptoJS.AES.encrypt(text, passphrase), ou du texte chiffré brut avec une clé et un IV en hex, en mode CBC, CFB, CTR, OFB, ECB ou GCM authentifié. Le remplissage est vérifié : une mauvaise clé est signalée au lieu de renvoyer du charabia.
Comment utiliser Déchiffrement AES
- Sélectionnez la même Source de la clé que pour le chiffrement : Phrase secrète (compatible OpenSSL) pour les données
U2FsdGVkX1…(« Salted__ »), ou Clé + IV bruts (hex) pour du texte chiffré brut. - Saisissez la phrase secrète (et la même Dérivation de clé), ou la clé et l’IV en hex.
- Réglez le même Mode et le même Remplissage que l’expéditeur et collez le Texte chiffré (Base64 ou Hex).
- Cliquez sur Déchiffrer. Gardez la sortie en texte (UTF-8), ou passez en Hex si le texte en clair est binaire.
Exemple
U2FsdGVkX19HHh9Vv809WnL0M8IWPgnpihePLw8JpDQ= (phrase secrète « secret », AES-256, CBC, EVP_BytesToKey MD5)
Hello, World!
Texte chiffré produit par openssl enc -aes-256-cbc -md md5 -a -k secret.
Quand utiliser Déchiffrement AES
Utilisez-le pour lire des données chiffrées avec OpenSSL ou CryptoJS, comprendre pourquoi votre application ne parvient pas à déchiffrer quelque chose, ou vérifier des vecteurs de test. Il vous faut la bonne phrase secrète ou la bonne clé : l’outil ne peut ni retrouver une clé perdue ni casser AES. Si le texte chiffré vient d’un autre produit (ZIP, base de données, gestionnaire de mots de passe), il a généralement son propre format de conteneur et ne se déchiffrera pas ici.
Comment fonctionne Déchiffrement AES
Pour les données avec phrase secrète, les 16 premiers octets doivent être Salted__ suivi d’un sel de 8 octets. La clé et l’IV sont dérivés de nouveau à partir de la phrase secrète et du sel avec EVP_BytesToKey (MD5) ou PBKDF2-HMAC-SHA256 avec votre nombre d’itérations, exactement comme openssl enc -d, puis le reste est déchiffré. Avec une clé brute, la clé et l’IV en hex sont utilisés directement. Après un déchiffrement CBC/ECB, le remplissage PKCS#7 est vérifié octet par octet : une incohérence signale presque toujours une mauvaise clé, un mauvais IV, un mauvais mode ou une mauvaise taille de clé. En GCM, la balise de 16 octets finale est vérifiée par Web Crypto avant l’affichage de tout texte en clair.
Cas d'utilisation courants
- Déchiffrer une chaîne
U2FsdGVkX1…issue deopenssl enc -aes-256-cbc -a - Vérifier une valeur chiffrée par
CryptoJS.AES.encryptdans une application web - Vérifier un texte chiffré AES-GCM + balise produit par votre serveur
- Trouver la taille de clé ou le mode utilisé en essayant les réglages probables
- Déchiffrer des données de test pendant le débogage d’une API ou d’une intégration
Note de Sécurité
Le déchiffrement se fait localement ; les phrases secrètes et les textes en clair ne quittent jamais votre appareil. Seul GCM prouve que les données n’ont pas été modifiées.
Questions Fréquentes
Que signifie « Remplissage invalide » ou « phrase secrète incorrecte » ?
Le dernier bloc déchiffré ne se terminait pas par un remplissage PKCS#7 valide. Vérifiez la phrase secrète, la taille de clé (128/192/256), le mode et la dérivation de clé (MD5 ou PBKDF2 et ses itérations). OpenSSL 1.1+ utilise par défaut -md sha256 sans -pbkdf2, ce qui n’est pas pris en charge ici : rechiffrez avec -md md5 ou -pbkdf2.
Peut-il déchiffrer la sortie de CryptoJS ?
Oui. CryptoJS.AES.encrypt(text, "passphrase").toString() utilise le même format Salted__ avec AES-256-CBC et EVP_BytesToKey/MD5, qui est le réglage par défaut ici.
Mon texte chiffré ne commence pas par U2FsdGVkX1. Que faire ?
Il a alors été chiffré avec une clé brute. Passez Source de la clé sur Clé + IV bruts (hex) et saisissez la clé et l’IV utilisés par le programme. Certains programmes placent l’IV au début du texte chiffré : séparez-le et saisissez-le dans le champ IV.
Pourquoi le résultat ressemble-t-il à des caractères aléatoires ?
Dans les modes flux (CTR, CFB, OFB), il n’y a pas de remplissage à vérifier : une mauvaise clé produit donc des octets aléatoires. L’outil les signale comme de l’UTF-8 invalide ; passez la sortie en Hex si vous attendez des données binaires.