215 votes

Base64: Quel est le pire possible augmentation de l'utilisation de l'espace?

Si un serveur a reçu une chaîne base64 et voulu vérifier la taille avant de les convertir,, dire qu'il voulait toujours permis de le dernier tableau d'octets à 16 KO. Comment grand pourrait un 16KB tableau d'octets devenir éventuellement lors de la conversion d'une chaîne Base64 (en supposant un octet par caractère)?

320voto

R. Martinho Fernandes Points 96873

Base64 encode chaque ensemble de trois octets en quatre octets. En outre, la sortie est rembourré pour toujours être un multiple de quatre.

Cela signifie que la taille de la base-64 représentation d'une chaîne de caractères de taille n est:

ceil(n / 3) * 4

Ainsi, pour un tableau de 16 ko, le base-64 représentation sera ceil(16*1024/3)*4 = 21848 octets de long.

43voto

Binary Worrier Points 27424

À Partir De Wikipedia

Noter qu'en raison d'un apport de n octets, la sortie sera (n + 2 - (n + 2) % 3)) / 3 * 4 octets de long, de sorte que le nombre de sortie octets par octets d'entrée converge vers 4 / 3 ou 1.33333 pour n grand.

Donc 16kb * 4 / 3 donne que très peu de plus de 21,3' ko, ou 21848 octets, pour être exact.

Espérons que cette aide

11voto

Chris Heald Points 28814

16kb est 131,072 bits. Base64 packs de 24 bits tampons en quatre 6 bits des caractères de chacun, de sorte que vous auriez 5,462 * 4 = 21,848 octets.

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