Maison >Problème commun >Qu'est-ce que l'encodage base64

Qu'est-ce que l'encodage base64

coldplay.xixi
coldplay.xixioriginal
2021-03-24 11:11:122981parcourir

Le codage Base64 est l'une des méthodes de codage les plus courantes pour transmettre du bytecode 8 bits sur Internet. Base64 est une méthode de représentation de données binaires basée sur 64 caractères imprimables. Vous pouvez consulter la [RFC2045~RFC2049], qui contient les spécifications détaillées de MIME.

Qu'est-ce que l'encodage base64

L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3.

Le codage Base64 est le processus de conversion du binaire en caractères et peut être utilisé pour transférer des informations d'identification plus longues dans un environnement HTTP. Le codage Base64 est illisible et doit être décodé avant de pouvoir être lu.

Base64 En raison des avantages ci-dessus, il est largement utilisé dans divers domaines informatiques. Cependant, car le contenu de sortie comprend plus de deux caractères de « classe de symboles » (+, /, =. ), différentes applications Différentes « variantes » de Base64 ont été développées pour chaque scénario. Pour unifier et normaliser la sortie de Base64, Base62x est considéré comme une version améliorée de non signé.

La Base64 standard ne convient pas à la transmission directement dans l'URL, car l'encodeur d'URL modifiera les caractères "/" et "+" de la Base64 standard sous la forme de "%XX", et ces "% Le signe " doit être converti lorsqu'il est stocké dans la base de données, car le signe "%" a été utilisé comme caractère générique dans ANSI SQL.

Pour résoudre ce problème, un encodage Base64 amélioré pour les URL peut être utilisé, qui remplit le signe '=' à la fin et change le "+" et "/" dans la base64 standard en " -" et "_", cela élimine le besoin de conversion lors du codage, du décodage et du stockage de la base de données de l'URL, évite l'augmentation de la longueur des informations codées au cours du processus et unifie le format des identifiants d'objet dans les bases de données, les formulaires, etc.

Il existe également une variante Base64 améliorée pour les expressions régulières, qui remplace "+" et "/" par "!" et "-", car "+", "*" et les deux "[" précédents. et "]" utilisé dans IRCu peut avoir des significations spéciales dans les expressions régulières.

Il existe également des variantes qui remplacent "+/" par "_-" ou "._" (utilisés comme noms d'identifiant dans les langages de programmation) ou ".-" (utilisé dans XML Nmtoken) ou même " _:" (pour Nom en XML).

Base64 nécessite de convertir tous les trois octets de 8 bits en quatre octets de 6 bits (3*8 = 4*6 = 24), puis d'ajouter deux 0 de poids fort au 6 bits pour former quatre octets de 8 bits, c'est-à-dire , la chaîne convertie sera théoriquement 1/3 plus longue que la chaîne d'origine.

Règles

Règles concernant cet encodage :

① Transformez 3 octets en 4 octets.

②Ajoutez un caractère de nouvelle ligne tous les 76 caractères.

③. Le terminateur final doit également être traité.

Exemple

Avant conversion 11111111, 11111111, 11111111 (binaire)

Après conversion 00111111, 00111111, 00111111, 001111 1 (binaire)

Les trois octets supérieurs sont le texte original et les quatre octets inférieurs sont le codage Base64 converti, les deux premiers bits étant 0.

Après la conversion, nous utilisons une table de codes pour obtenir la chaîne souhaitée (c'est-à-dire l'encodage Base64 final. Cette table ressemble à ceci : (Extrait de la RFC2045)

. Recommandations vidéo associées : Programmation PHP du débutant au compétent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn