Encodage, chiffrement et hachage
Distinguez clairement ces trois concepts et comprenez quand utiliser chacun d’eux.
Encodage, chiffrement et hachage est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Trois opérations différentes
L'encodage, le chiffrement et le hachage sont trois opérations fondamentalement différentes qui répondent à des objectifs distincts. Elles sont souvent confondues, mais comprendre la différence est essentiel pour concevoir des systèmes sécurisés.
L'encodage transforme le format des données sans fournir de sécurité. Le chiffrement protège la confidentialité. Le hachage produit une empreinte de longueur fixe permettant de vérifier l'intégrité.
Encodage : transformation de format
L'encodage convertit les données d'un format vers un autre à des fins de compatibilité ou de transmission. Il est toujours réversible et ne nécessite aucune clé. Toute personne qui connaît le schéma d'encodage peut décoder les données.
Parmi les exemples figurent Base64 (binaire vers ASCII), l'encodage des URL (%20 pour un espace), les entités HTML (& pour &) et l'encodage hexadécimal. L'objectif est la compatibilité, pas la sécurité.
Chiffrement : confidentialité avec une clé
Le chiffrement transforme le texte en clair en texte chiffré à l'aide d'une clé. L'opération n'est réversible que par une personne possédant la clé correcte. Sans la clé, le déchiffrement du texte chiffré est irréalisable en pratique par calcul.
Les algorithmes de chiffrement comprennent AES (symétrique), RSA (asymétrique) et ChaCha20. C'est la clé qui fournit la sécurité. L'algorithme lui-même est public.
Hachage : condensés irréversibles de longueur fixe
Une fonction de hachage cryptographique prend une entrée de longueur quelconque et produit une sortie de longueur fixe, appelée condensé ou empreinte. La fonction est déterministe, c'est-à-dire qu'une même entrée donne toujours la même sortie, mais elle est conçue pour être irréversible.
SHA-256 produit toujours une sortie de 256 bits, que l'entrée fasse 1 octet ou 1 gigaoctet. Les fonctions de hachage servent à vérifier l'intégrité, à stocker les mots de passe et à produire des signatures numériques.
Base64 n'est pas un chiffrement (NOT)
Une erreur critique et courante consiste à croire que les données encodées en Base64 sont chiffrées. Elles ne le sont NOT pas. Décoder Base64 nécessite seulement de savoir qu'il s'agit de Base64, ce qui est souvent évident grâce au remplissage "==" ou à l'ensemble de caractères utilisé.
Si vous encodez un mot de passe sous la forme "cGFzc3dvcmQ=" (Base64 pour "password"), un attaquant peut le décoder en quelques secondes. Dans un contexte de sécurité, Base64 ne sert qu'à assurer la compatibilité de transmission, jamais à dissimuler des données.
Le MD5 d'un mot de passe est un hachage, pas un chiffrement
Hacher un mot de passe avec MD5 le stocke sous forme de condensé irréversible. Vous ne pouvez pas « déchiffrer » une empreinte MD5 pour récupérer le mot de passe. Cependant, MD5 ne convient pas au hachage des mots de passe, car il est trop rapide.
Les attaquants peuvent calculer des milliards d'empreintes MD5 par seconde à l'aide de processeurs graphiques, ce qui rend les attaques par force brute et par tables arc-en-ciel réalisables. Le stockage des mots de passe nécessite des fonctions lentes et exigeantes en mémoire comme bcrypt, scrypt ou Argon2.
AES-GCM est un chiffrement authentifié
AES-GCM (mode compteur de Galois) fournit à la fois la confidentialité (chiffrement) et l'intégrité (authentification). Il utilise AES en mode compteur pour le chiffrement et GHASH pour l'authentification.
Le tag d'authentification produit par AES-GCM détecte toute altération du texte chiffré. Cela en fait un schéma de chiffrement authentifié avec données associées (AEAD), la référence de choix du chiffrement moderne.
SHA-256 est une fonction de hachage
SHA-256 (algorithme de hachage sécurisé de 256 bits) est une fonction de hachage cryptographique normalisée par NIST. Elle produit un condensé de 256 bits et est considérée comme sûre contre toutes les attaques connues, notamment les attaques par collision et par préimage.
SHA-256 est utilisé dans les certificats TLS, le minage de Bitcoin (preuve de travail), l'authentification des messages par HMAC et les schémas de signature numérique comme RSA-SHA256 et ECDSA.
Erreurs courantes des développeurs
Voici des erreurs de sécurité courantes dues à la confusion entre ces trois opérations : stocker les mots de passe chiffrés plutôt que hachés, ce qui fait de la clé de chiffrement la véritable vulnérabilité ; utiliser l'encodage au lieu du chiffrement pour les données sensibles ; utiliser des hachages rapides (MD5, SHA-1) pour stocker les mots de passe ; et supposer qu'une donnée est forcément sécurisée parce qu'elle est en Base64.
Autre erreur : utiliser la même fonction à plusieurs fins, par exemple utiliser une fonction de hachage comme un MAC sans la construction HMAC, ce qui la rend vulnérable aux attaques par extension de longueur.
Quand utiliser chaque opération
Utilisez l'encodage lorsque vous devez transmettre des données binaires via un protocole textuel, stocker des octets dans un champ textuel ou intégrer des données dans une URL. Utilisez le hachage pour stocker les mots de passe (avec bcrypt/Argon2), vérifier l'intégrité des données (sommes de contrôle) et dériver des identifiants de longueur fixe à partir de données de longueur variable.
Utilisez le chiffrement lorsque vous devez stocker ou transmettre des données sensibles qui doivent pouvoir être récupérées avec la bonne clé. Combinez le hachage et le chiffrement (AEAD) pour assurer à la fois l'intégrité et la confidentialité des données en transit.
Combiner les trois en pratique
Un système d'authentification bien conçu utilise les trois opérations : les mots de passe sont hachés avec Argon2 (hachage), l'empreinte est stockée dans un champ de base de données avec un chiffrement de colonne AES-256 (chiffrement) et le jeton d'API renvoyé après la connexion est encodé en Base64url (encodage).
Chaque opération répond à un objectif distinct. Savoir quelle opération convient à chaque cas d'utilisation est une compétence fondamentale en cryptographie appliquée et en conception de systèmes sécurisés.
Quiz sur l'encodage et le chiffrement
Vérifiez votre compréhension de l'encodage, du chiffrement et du hachage.
Points essentiels : encodage, chiffrement et hachage
L'encodage (Base64, hexadécimal) transforme le format sans fournir de sécurité. Le chiffrement (AES-GCM) assure une confidentialité réversible qui nécessite une clé. Le hachage (SHA-256, Argon2) produit des condensés irréversibles de longueur fixe.
N'utilisez jamais l'encodage à des fins de sécurité. Utilisez des hachages lents (Argon2/bcrypt) pour les mots de passe. Utilisez un chiffrement authentifié (AEAD) pour les données sensibles en transit ou au repos. Confondre ces catégories est l'une des sources les plus courantes de vulnérabilités de sécurité.
Questions Fréquemment Posées
La leçon « Encodage, chiffrement et hachage » est-elle gratuite ?
Oui — le texte complet de « Encodage, chiffrement et hachage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Encodage, chiffrement et hachage » ?
Distinguez clairement ces trois concepts et comprenez quand utiliser chacun d’eux. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Encodage, chiffrement et hachage » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Encodage Base64 : comment ça fonctionne
- ASCII, Unicode et représentation du texte
- L’hexadécimal dans les sorties cryptographiques
- Encodage, chiffrement et hachage