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. - 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. Ça se retrouve encore partout aujourd'hui : dans la photo de ta carte d'identité quand elle est lue, dans les jetons qui te maintiennent connecté à un site, dans les certificats.
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 connais ces « jetons » des sites web ? Quand tu es connecté, ton navigateur garde souvent une longue suite de caractères avec deux points dedans. C'est un JWT, et les deux premières parties sont simplement du base64. Tout le monde peut lire ce qu'il y a dedans — ton nom, ton numéro d'utilisateur. Ce que personne ne peut falsifier, c'est la troisième partie : la signature. Comment ça marche, tu le verras au chapitre sept.
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.