Tableaux d'octets à chaîne base64
Dire que j'ai deux tableaux d'octets.
Dans le premier scénario, je concaténer deux tableaux (à l'aide de la mémoire Tampon.BlockCopy), puis convertir le résultat en base64 chaîne.
Dans le deuxième scénario, je convertir chaque tableau d'octets en base64 chaîne, puis concaténer des chaînes.
Les deux résultats seront-ils les mêmes?
Vous devez vous connecter pour publier un commentaire.
Résultats seraient les mêmes si la longueur de la première pile est divisible par 3, dans tous les autres cas, le résultat de la concaténation de deux base64 chaînes seraient différentes (et non valides base64) en raison des octets de remplissage à la fin de la première chaîne. La longueur de la deuxième tableau n'a pas d'importance pour cette opération, comme le rembourrage est toujours à la fin.
Pourquoi "divisible par 3" - depuis base64 encode tous les 3 octets dans exactement 4 personnages des tableaux de telle longueur n'aurez pas besoin de rembourrage à la fin. Voir https://tools.ietf.org/html/rfc4648#section-4 pour plus de détails formels et https://en.wikipedia.org/wiki/Base64#Padding pour plus lisible explication.
I. e. si le premier tableau est de 4 octets de long, vous obtenez
==
à la fin de la chaîne convertie et la concaténation avec d'autres base64 chaîne résultante base64 texteExemple de cas où la concaténation fonctionne de la même façon sur les tableaux premier ou sur des chaînes de caractères:
Sorties: