Comment chiffrer et déchiffrer du texte

Cinq chiffrements à phrase secrète sur un seul écran : AES, DES, RC4, Rabbit et TripleDES. Choisissez l’algorithme, collez le texte, cliquez sur Chiffrer : le résultat apparaît en dessous. Collez ce résultat avec la même phrase secrète et cliquez sur Déchiffrer pour retrouver l’original.

Les chiffrements s’exécutent dans la page avec CryptoJS. Le texte et la phrase secrète ne quittent pas le navigateur, et c’est aussi pour cela que l’outil fonctionne sans connexion.

  1. Collez ou saisissez le texte dans le champ ci-dessus. AES est sélectionné par défaut ; changez d’algorithme uniquement pour reproduire un texte chiffré qui existe déjà.
  2. Saisissez la phrase secrète dans le champ de clé. La même phrase secrète sera nécessaire pour relire le résultat plus tard : rien n’est conservé ici.
  3. Cliquez sur Chiffrer. La sortie est en Base64 et commence par U2FsdGVkX1, la marque du conteneur salé au format OpenSSL.
  4. Pour revenir en arrière, collez le texte chiffré dans le même champ, sélectionnez l’algorithme qui l’a produit et cliquez sur Déchiffrer.

Ce que contient réellement la sortie

Le conteneur salé et son sel aléatoire

Chaque résultat est un conteneur au format OpenSSL : les huit octets Salted__ (U2FsdGVkX1 en Base64), huit octets de sel aléatoire, puis le texte chiffré. La clé et le vecteur d’initialisation sont dérivés de la phrase secrète et de ce sel par EVP_BytesToKey avec MD5, la dérivation qu’utilise openssl enc avec -md md5.

Le sel étant aléatoire, le même texte avec la même phrase secrète donne chaque fois une chaîne différente. Deux sorties identiques seraient un défaut ; des sorties différentes sont normales.

Quel algorithme tourne réellement

AES correspond à aes-256-cbc, DES à des-cbc et TripleDES à des-ede3-cbc : les trois se déchiffrent avec OpenSSL, par exemple avec openssl enc -d -aes-256-cbc -md md5 -k « phrase secrète ». RC4 utilise ici une clé de 256 bits, le double des 128 bits dérivés par défaut par openssl enc -rc4, qui ne peut donc pas relire la sortie. Rabbit n’existe que dans CryptoJS et n’a pas d’équivalent dans OpenSSL.

AES, DES et TripleDES sont des chiffrements par blocs en mode CBC avec remplissage PKCS#7 ; RC4 et Rabbit sont des chiffrements de flux, leur sortie a donc la longueur du texte d’origine.

Déchiffrer avec une mauvaise phrase secrète

AES, DES et TripleDES échouent au contrôle de remplissage et ne renvoient rien ; RC4 et Rabbit produisent des octets qui ne sont presque jamais de l’UTF-8 valide. Dans les deux cas, la page signale maintenant l’échec et vide la sortie au lieu de laisser le texte précédent à l’écran.

Le conteneur n’a aucun contrôle d’intégrité — ni MAC ni tag authentifié —, un texte chiffré modifié passe donc inaperçu et une mauvaise phrase secrète ne se distingue pas de données abîmées. Comparez un petit échantillon connu avant de transmettre une valeur déchiffrée à un traitement automatique.

Ce que la page ne fait pas

Elle traite du texte, pas des fichiers, et ne signe, ne vérifie ni ne conserve rien : aucun historique, aucune clé stockée, aucun résultat après un rechargement.

DES, RC4 et TripleDES restent disponibles pour la compatibilité avec des données existantes. Une clé dérivée d’une phrase secrète en mode CBC n’est pas une construction moderne ; pour du nouveau code, utilisez AES-GCM ou ChaCha20-Poly1305, que cette page ne produit pas.

Outils récents :