Chiffrer et déchiffrer du texte avec TripleDES

Cette page transforme du texte en un bloc TripleDES en Base64 et reconvertit ce bloc en texte. Collez le contenu, saisissez la phrase secrète, appuyez sur Chiffrer ou Déchiffrer, puis copiez le résultat affiché sous les boutons. Tout se passe dans le navigateur et rien de ce que vous collez n'est envoyé.

Le bloc est le conteneur qu'écrit CryptoJS : du Base64 dont les premiers octets décodés sont les huit caractères Salted__, puis huit octets de sel aléatoire, puis le texte chiffré. La ligne de commande OpenSSL écrit la même forme pour Triple DES, si bien que chaque côté peut lire la sortie de l'autre.

  1. Collez le texte à protéger dans le champ du haut, ou collez un bloc en Base64 lorsque vous voulez en relire un.
  2. Saisissez la phrase secrète dans le champ de clé. Les deux sens demandent la même phrase, et une phrase vide est écartée au lieu de devenir un bloc que personne ne pourra ouvrir.
  3. Appuyez sur Chiffrer pour passer du texte au Base64, ou sur Déchiffrer pour le chemin inverse. Le résultat apparaît sous les boutons ; la ligne d'état ne se remplit qu'en cas de problème.
  4. Appuyez sur Copier pour mettre tout le résultat dans le presse-papiers, ou sélectionnez-le à la main. Effacer vide le champ, la phrase secrète et le résultat avant le document suivant.
  5. Conservez la phrase secrète avec le bloc. Sans elle, le bloc reste fermé : ici il n'y a ni récupération, ni réinitialisation, ni dépôt de clés.

Le conteneur salé, OpenSSL et ce que signifie un déchiffrement raté

Ce que contient le résultat en Base64

Décodé, le résultat donne trois parties : les caractères ASCII Salted__, huit octets de sel issus du générateur aléatoire du navigateur, et le texte chiffré lui-même, écrit en blocs de 8 octets avec remplissage PKCS#7. Une entrée de 31 caractères occupe donc 48 octets de chiffré, une entrée d'un seul caractère en occupe huit.

Le sel est nouveau à chaque clic : le même texte avec la même phrase secrète donne chaque fois une chaîne Base64 différente, et comparer deux exécutions à l'œil ne prouve pas que les entrées étaient identiques. La phrase secrète n'est pas la clé : elle est étirée avec MD5 en une clé TripleDES de 24 octets et un IV de 8 octets, exactement comme le fait la ligne de commande OpenSSL avec -md md5. Le résultat est replié sur plusieurs lignes comme celui de la console, et se relit avec ou sans ces retours à la ligne.

OpenSSL lit cette sortie et cette page lit OpenSSL

Mesuré avec OpenSSL 1.1.1k : openssl enc -d -des-ede3-cbc -md md5 -a -k déchiffre un bloc venu de cette page, et un bloc écrit par openssl enc -des-ede3-cbc -md md5 -a -k se déchiffre ici. En donnant à la console le sel contenu dans un bloc de la page, elle a affiché la même clé de 24 octets et le même IV de 8 octets que cette page dérive, et reproduit ce bloc octet pour octet.

L'option fait partie du format et n'est pas un détail : un bloc écrit avec -md sha256 ou avec -pbkdf2 est refusé ici, car une autre dérivation produit une autre clé. Vos données ne sont pas corrompues, elles sont seulement verrouillées avec une autre dérivation : déchiffrez-les avec l'outil qui les a écrites, ou réécrivez-les avec -md md5 tant que vous avez la phrase secrète.

Quand le déchiffrement échoue, et à quoi TripleDES sert encore

Une mauvaise phrase secrète, un caractère modifié dans le Base64 et un texte ordinaire collé comme s'il s'agissait d'un bloc finissent pareil : le résultat est vidé et un seul message énumère les trois causes possibles. L'échec ne peut pas être attribué à l'une d'elles, car le contrôle du remplissage échoue avant que la clé puisse être jugée. Entrée vide et phrase secrète vide ont leurs propres messages.

TripleDES est un chiffrement hérité : trois clés DES sur des blocs de 8 octets, écarté des conceptions nouvelles et maintenu en vie par des données déjà stockées avec lui. Utilisez cette page pour lire ces données ou écrire une valeur compatible ; pour du neuf, prenez AES. Et un aller-retour réussi prouve seulement que la phrase secrète correspondait : il ne dit ni qui a écrit le bloc, ni si le clair mérite confiance.

Outils récents :