Base64 : ce n'est pas du chiffrement
Imagine : quelqu'un t'envoie SGV5LCBnZWhlaW0h. Ça ressemble à
un code. C'en est un — mais il n'y a pas de clé, pas de mot de passe, pas
de secret. N'importe qui peut le retourner en un clic. C'est la différence
entre écrire autrement et vraiment cacher,
et c'est cette différence qui explique pourquoi ce chapitre vient en
premier.
Les mots dont tu as besoin
- Octet
- Tout dans un ordinateur — une lettre, un pixel, une note dans une
chanson — est finalement un nombre de 0 à 255. Ce nombre s'appelle un
octet. La lettre
Aest l'octet 65, une espace est 32. - Encoder
- Écrire la même information d'une autre manière. Comme « cinq » et « 5 » et « V » sont le même nombre. Rien ne se perd et rien n'est caché.
- Base64
- Une façon d'écrire des octets avec seulement des lettres, des
chiffres,
+et/. Chaque groupe de trois octets devient quatre caractères. Tout devient donc un tiers plus long. Dans une adresse web, on prend une variante avec-et_, parce que+et/y signifient déjà autre chose. - Hexadécimal
- Encore une façon d'écrire des octets, cette fois avec les chiffres
0–9 et les lettres a–f. Chaque octet devient deux caractères :
41est la lettreA. Tu vas voir ça dans la démo.
Pourquoi ça existe, alors ?
Autrefois, les programmes de courrier électronique ne pouvaient envoyer que du texte ordinaire. Si tu joignais une photo, elle arrivait abîmée de l'autre côté, parce qu'elle contenait des octets que le serveur de mail ne comprenait pas. La solution : transformer ces octets en caractères que chaque programme comprend, et les reconvertir de l'autre côté. C'est le base64.
Et c'est là que se trouve tout l'intérêt. Tout ce qui se trouve sur un ordinateur peut être mis en base64 : une photo, une chanson, un PDF, un programme entier. Ce qui en sort est du texte ordinaire — des lettres, des chiffres et quelques signes de ponctuation, rien de plus. Et du texte, tu peux le mettre partout.
Dans une adresse web. En pièce jointe à un mail. Dans un message que tu
sélectionnes, copies et colles ailleurs. Rien ne se casse en route, car
aucun programme ne va tripoter un A ou un 7. Avec
des octets bruts, ça tourne mal : un seul retour à la ligne converti en
chemin, ou un seul octet lu comme « ici le fichier s'arrête », et ta photo
est irrécupérable. C'est tout l'arbitrage — ton fichier devient un tiers
plus long, et en échange il survit à n'importe quel voyage.
C'est pour ça que ça se retrouve encore partout aujourd'hui : dans la photo de ta carte d'identité quand elle est lue, dans les clés que tu vas bientôt créer toi-même, et dans chaque pièce jointe que tu envoies avec un mail.
Essaie toi-même
Tout se passe dans ton navigateur. Rien n'est envoyé au serveur.
- Clique sur Vers base64. Tu vois ta phrase en octets et en base64.
- Colle le résultat base64 dans le champ et clique sur Retour au texte. Ta phrase revient. Sans mot de passe.
- Colle maintenant
SGV5LCBnZWhlaW0het clique sur Retour au texte.
Regarde la ligne Octets (hex). Ce sont les vrais nombres qui composent ta phrase. Base64 et hexadécimal sont tous les deux simplement une façon d'écrire ces nombres — comme tu peux écrire un nombre en chiffres ou en toutes lettres. Aucun des deux ne cache quoi que ce soit.
Le test que tu peux désormais toujours faire
Tu vois quelque chose d'illisible ? Pose-toi une seule question : faut-il une clé pour le retourner ? Non ? Alors c'est de l'encodage, et ce n'est pas secret, aussi bizarre que ça paraisse. Oui ? Alors seulement c'est du chiffrement. Tout ce qui suit sur ce site parle de ce « oui ».
Tu vas revoir ça sur tout le site. Presque chaque chapitre suivant affiche son résultat en base64 : le paquet chiffré au chapitre 4, ta clé publique au chapitre 6, le message que tu envoies via WhatsApp au chapitre 8.1, ta photo d'identité quand tu la sors de la puce au chapitre 8.2. Chaque fois pour la raison ci-dessus : il faut faire passer des octets par quelque chose qui ne supporte que du texte. Et chaque fois la même règle — ce qui est secret est dans les octets. Jamais dans le base64 autour.
Voici les maths : compter dans une autre base
Toi, tu comptes en dizaines : 10 chiffres, de 0 à 9. Un ordinateur compte en base deux : 0 et 1. L'hexadécimal compte en base seize, le base64 en base soixante-quatre. C'est toujours le même nombre, écrit autrement. La question « combien de caractères faut-il pour écrire un nombre ? » est une question de logarithmes — et c'est exactement pourquoi 3 octets deviennent toujours 4 caractères base64 : 224 = 644. Vérifie le calcul.