Cet après-midi, j'ai encore été bien embêté par un problème de données. Le client a importé un fichier, disant qu'il était chiffré et impossible à ouvrir. Dès que j'ai vu le format, j'ai compris à peu près — ce n'est que du Base64, pas du chiffrement, juste une couche qui fait peur.
Franchement, ce truc de Base64, dans notre métier, on l'aime et on le déteste. On l'aime parce que c'est simple et direct : ça transforme des données binaires en une chaîne de texte bien propre, qu'on peut transmettre sans craindre les problèmes d'encodage. On le déteste parce que certains le prennent pour du chiffrement, comme si c'était mystérieux. Aujourd'hui, si je n'avais pas eu cette idée en tête, j'aurais dû expliquer au client pendant des heures que « ce n'est pas du chiffrement, c'est de l'encodage ».
Voilà ce qui s'est passé : l'autre partie a envoyé un fichier CSV avec une colonne de données, toutes commençant par « U2FsdGVkX1+... ». Le client a dit que c'était des « mots de passe chiffrés » générés automatiquement par leur système, et qu'ils devaient migrer vers un nouveau système qui ne les reconnaissait pas. Dès que j'ai vu ce début, j'ai failli rire : c'est typique du Base64 ! J'ai collé ça dans un outil en ligne, cliqué sur décoder, et voilà, c'était juste du texte UTF-8 ordinaire, pas de chiffrement du tout.
En fait, j'ai rencontré ce genre de situation trop souvent. Beaucoup de gens ne font pas la différence entre « encodage » et « chiffrement ». Le Base64, c'est essentiellement une méthode qui convertit des octets de 8 bits en caractères imprimables de 6 bits, sans aucune clé, et tout le monde peut le décoder. Mais comme ça ressemble à du charabia, on l'utilise souvent comme « pseudo-chiffrement ». Aujourd'hui, si je n'avais pas connu ce truc, j'aurais dû deviner et ça aurait duré jusqu'à la fin de la journée.
Une autre fois, j'ai traité un problème d'upload d'images. Le front-end convertissait l'image en chaîne Base64 et l'envoyait directement au back-end. Résultat : quand le back-end stockait ça en base de données, la chaîne était tellement longue qu'elle a failli faire exploser la structure de la table. Ensuite, je lui ai appris à utiliser un flux binaire natif, et le problème a été réglé immédiatement. Le Base64, c'est pratique, mais il a un défaut fatal : le volume augmente d'environ 33 %, et avec une grande image, la longueur de la chaîne peut faire peur.
Mais bon, pour ce travail d'aujourd'hui, je dois vraiment remercier le Base64. Sans cette méthode d'encodage « simple d'esprit », je n'aurais pas pu identifier rapidement le contenu des données. Je n'ai même pas eu besoin d'écrire un script : j'ai trouvé un outil de décodage sur une page web et j'ai vu le contenu en quelques secondes. Si c'était vraiment du chiffrement, j'aurais dû faire des heures sup aujourd'hui.
Donc, vous voyez, l'outil en soi n'est ni bon ni mauvais, tout dépend si vous le comprenez. Le Base64, c'est comme un passe-partout : il ne verrouille pas les portes, mais il peut ouvrir beaucoup de portes qui semblent verrouillées. Je conseille à tous mes collègues : quand vous voyez une chaîne qui « ressemble à du charabia mais avec une certaine régularité », ne paniquez pas, copiez un extrait et mettez-le dans un décodeur Base64. Neuf fois sur dix, ça vous fera gagner une demi-heure de recherche. Aujourd'hui, il m'a encore sauvé la vie ; la prochaine fois, c'est à votre tour, n'oubliez pas cette astuce.