Aller au contenu principal

3. Divergences d'implémentation

Les implémentations d'encodage de base diffèrent principalement sur cinq aspects : les sauts de ligne, le remplissage, les caractères hors alphabet, le choix de l'alphabet et l'encodage canonique.

3.1 Sauts de ligne dans les données encodées​

L'encodeur NE DOIT PAS ajouter de sauts de ligne aux données encodées en base, sauf si la spécification faisant référence à ce document l'exige explicitement. Les limites de longueur de ligne de MIME et PEM sont des règles de ces formats eux-mêmes, et non des exigences générales de Base64.

3.2 Remplissage des données encodées​

L'encodeur DOIT généralement inclure le caractère de remplissage approprié à la fin des données encodées, sauf indication explicite contraire de la spécification faisant référence à ce document.

3.3 Caractères hors alphabet​

Le décodeur DOIT rejeter les données encodées contenant des caractères absents de l'alphabet choisi, sauf si la spécification faisant référence à ce document autorise intentionnellement de tels caractères (par exemple en ignorant les espaces blancs).

3.4 Choix de l'alphabet​

Différents environnements nécessitent des alphabets différents. Des caractères comme + et / sont incommodes dans les URL et les noms de fichiers, ce qui explique pourquoi RFC 4648 définit un alphabet Base64 sûr pour les URL et les noms de fichiers.

3.5 Encodage canonique​

Les bits de remplissage DOIVENT être nuls. Sinon, une même donnée binaire pourrait avoir plusieurs représentations textuelles, ce qui briserait la comparaison canonique et pourrait affecter les signatures ou les hachages.