Appendix C. Notes on Implementing base64url Encoding without Padding (Notes sur l'implémentation de l'encodage base64url sans remplissage)
Cette annexe décrit comment implémenter l'encodage base64url sans utiliser de remplissage, comme requis par cette spécification.
L'encodage base64url est une variante de l'encodage base64 défini dans la section 5 de RFC 4648 [RFC4648], utilisant un jeu de caractères sûr pour les URL et les noms de fichiers. Les seules différences sont :
- Utilisation de '-' au lieu de '+'
- Utilisation de '_' au lieu de '/'
- Omission des caractères de remplissage '='
Pour implémenter l'encodage base64url sans remplissage :
- Encodez la séquence d'octets d'entrée en utilisant un encodeur base64 standard
- Remplacez tous les caractères '+' par '-' dans le résultat
- Remplacez tous les caractères '/' par '_' dans le résultat
- Supprimez tous les caractères '=' de fin
Pour décoder une chaîne encodée en base64url :
- Ajoutez des caractères '=' selon les besoins pour que la longueur de la chaîne soit un multiple de 4
- Remplacez tous les caractères '-' par '+'
- Remplacez tous les caractères '_' par '/'
- Décodez le résultat en utilisant un décodeur base64 standard
Calcul du remplissage :
Si longueur d'entrée mod 4 == 0, aucun remplissage n'est nécessaire. Si longueur d'entrée mod 4 == 2, ajoutez deux caractères '='. Si longueur d'entrée mod 4 == 3, ajoutez un caractère '='. Si longueur d'entrée mod 4 == 1, l'entrée est mal formée.