378 votes

Pourquoi la chaîne codage base64 ont = signe dans le dernier

Je sais ce qu'est base64 encoding, et comment calculer base64 encoding dans c #. J'ai vu plusieurs fois que quand je convertis une chaîne en base64, il y a = signe le dernier.

J'ai des doutes suivants dans mon esprit

  1. La chaîne base64 se termine-t-elle toujours par le signe = ?
  2. pourquoi = le signe est ajouté dans le dernier?

307voto

Andrew Hare Points 159332

Il sert de rembourrage.

Une réponse plus complète, c’est qu’une chaîne codées en base64 n’est pas toujours fin avec un , il finira seulement avec un ou deux si ils sont nécessaires pour remplir la chaîne à la bonne longueur.

68voto

Legolas Points 592

De Wikipedia :

La séquence '==' et '=' indique que le dernier groupe ne contenait que 8 ou 16 bits, respectivement.

Ainsi, c'est une sorte de rembourrage.

17voto

iandotkelly Points 4286

Son défini dans RFC 2045 comme un caractère de remplissage spécial si moins de 24 bits sont disponibles à la fin des données codées.

11voto

Sam Holloway Points 1298

Le signe égal (=) est utilisé comme remplissage dans certaines formes de codage en base64. L' article de Wikipedia sur base64 contient tous les détails.

9voto

Thomas Leonard Points 2166

C'est du rembourrage. À partir de http://en.wikipedia.org/wiki/Base64:

En théorie, le rembourrage personnage n'est pas nécessaire pour le décodage, depuis le nombre de disparus octets peut être calculé à partir du nombre de Base64 chiffres. Dans certaines implémentations, le rembourrage personnage est obligatoire, alors que pour d'autres, il n'est pas utilisé. Un cas dans lequel les caractères de remplissage sont requis est la concaténation de plusieurs des fichiers encodés en Base64.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X