Base64
Le Base64 est un codage de transfert de contenu de MIME de du base-64 qui emploie les caractères A&ndash ; Z, a&ndash ; z, et 0&ndash ; 9 dans cette commande pour les 62 premiers chiffres. Les symboles choisis pour les deux derniers chiffres varient considérablement entre différents systèmes. Plusieurs autres méthodes de codage telles qu'uuencode et versions postérieures de de Binhex emploient un ensemble différent de 64 caractères pour représenter 6 éléments binaires, mais ceux-ci ne s'appellent jamais par le nom Base64.
Arrangements de codage de la base 64
Privacy Enhanced Mail (PEM)
L'utilisation d'abord connue du codage de la base 64 pour le transfert de données électroniques était le protocole Intimité-augmenté par du courrier électronique (PEM), proposé par RFC 989 dans le 1987 . Le PEM définit un " ; encoding" imprimable ; comploter que les utilisations basent le codage 64 pour transformer un ordre arbitraire des octets à un format qui peut être exprimé en lignes courtes de 7 caractères de bit, selon les exigences des protocoles de transfert tels que smtp .
La version en cours du PEM (spécifique dans RFC 1421) emploie se composer d'alphabet de 64 caractères supérieur- et des caractères de l'alphabet romain de lettre minuscule (A&ndash ; Z, a&ndash ; z), les numéros (0&ndash ; 9), et le " ; +" ; et " ; /" ; symboles. Le " ; =" ; le symbole est également employé comme code spécial de suffixe. Les spécifications originales, RFC 989, ont en plus employé le " ; *" ; symbole pour délimiter des données codées mais non codées dans le train de sorties.
Pour convertir des données en codage imprimable de PEM, le premier byte est placé dans le la plupart des bits significatifs de huit des 24 amortisseurs de bit, le prochain dans les huit moyens, et le tiers dans le moindres bits significatifs de huit. S'il y a moins de trois bytes laissés pour coder (ou au total), le peu restant d'amortisseur sera zéro. L'amortisseur est alors employé, six bits à la fois, le premier le plus significatif, comme index dans la corde : " ; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ; , et le caractère indiqué est produit.
Le processus est répété sur les données restantes jusqu'à ce que moins de quatre octets demeurent. Si trois octets demeurent, ils sont traités normalement. Si moins de trois octets (24 bits) sont restants pour coder, les données d'entrée droit-sont capitonnées avec le peu zéro pour former un multiple intégral de six bits.
Après codage données capitonnées, si deux octets étaient restants pour coder, un " ; =" ; le caractère est apposé au rendement ; si un octet était restant, le " deux ; =" ; des caractères sont apposés. Ceci signale le décodeur que le peu zéro a ajouté en raison de la remplissage devrait être exclu des données reconstruites. Ceci garantit également que la longueur codée de rendement est un multiple de 4 bytes.
Le PEM exige que toutes les lignes codées se composent exactement de 64 caractères imprimables, excepté la dernière ligne, qui peut contenir peu de caractères imprimables. Des lignes sont délimitées par des caractères de whitespace selon des conventions (platform-specific) locales.
MIME
Les spécifications de MIME (Multipurpose Internet Mail Extension) de , définies dans RFC 2045, énumèrent le " ; base64" ; en tant qu'un de plusieurs le codage de Binaire-à-texte complote. Le codage du base64 du MIME est basé sur celui de la version 1421 de RFC du PEM : il emploie le même mécanisme d'alphabet et de codage de 64 caractères que le PEM, et emploie le " ; =" ; symbole pour la remplissage de rendement de la même manière. Le MIME ne spécifie pas une longueur fixe pour des lignes de base64-encoded, mais il spécifie une longueur maximum de 76 caractères. En plus il spécifie que tous les caractères supplémentaire-alphabétiques doivent être ignorés par un décodeur conforme, bien que la plupart des réalisations emploient une paire du caractère NL de CR/LF pour délimiter les lignes codées.
Ainsi, la longueur réelle des données binaires Pantomime-conformes de base64-encoded est habituellement environ 137% de la longueur de données originale, cependant pour les messages très courts que les frais généraux peuvent être beaucoup plus hauts en raison des frais généraux des en-têtes. Très rudement, la taille finale des données binaires de base64-encoded est égale à 1.37 fois la taille originale de données + 814 bytes (pour des en-têtes).
UTF-7
Le UTF-7 , décrit dans RFC 2152, a présenté un système appelé le Base64 modifié par . Cet arrangement de codage de données est employé pour coder le UTF-16 comme caractères du ASCII pour l'usage dans 7 transports de bit tels que smtp . C'est une variante du codage base64 utilisé dans le MIME.Le " ; Base64" modifié ; l'alphabet comprend l'alphabet de MIME base64, mais n'emploie pas le " ; =" ; caractère de remplissage. UTF-7 est prévu à l'utilisation dans des en-têtes de courrier (définis dans RFC 2047), et au " ; =" ; le caractère est réservé dans ce contexte comme caractère d'échappement pour le " ; cité-printable" ; codage. Base64 modifié omet simplement la remplissage et les extrémités juste après le dernier chiffre BASE64 contenant le peu utile (laissant 0-4 bits inutilisés dans le dernier chiffre base64)
OpenPGP
OpenPGP, décrit dans RFC 2440, décrit le codage Radix-64, également connu sous le nom de " ; ASCII Armor" ;. Radix-64 est identique au " ; base64" ; codage décrit du MIME, avec l'addition des 24 sommes du centre de détection et de contrôle de bit. La somme est calculée sur les données d'entrée avant le codage ; la somme est alors codée avec le même algorithme base64 et, using un " additionnel ; =" ; symbole comme séparateur, enchaîné aux données de rendement codées.
RFC 3548
RFC 3548 (les codages de données Base16, Base32, et Base64) est une note (non-normative) informationnelle qui essaye d'unifier les caractéristiques de RFC 1421 et de RFC 2045 des codages base64, des codages d'alternative-alphabet, et des codages rarement-utilisés de la base 32 et de la base 16.RFC 3548 interdit des réalisations d'ajouter les caractères non alphabétiques à moins qu'ils soient écrits à des spécifications qui se rapportent à RFC 3548 et l'exigent spécifiquement autrement ; il déclare également que les réalisations de décodeur doivent rejeter les données qui contiennent les caractères non alphabétiques à moins qu'ils soient écrits à des spécifications qui se rapportent à RFC 3548 et l'exigent spécifiquement autrement.
RFC 4648
Ce RFC 3548 d'obsoletes de RFC et foyers sur la base 64/32/16 : lece document décrit la base utilisée généralement 64, la base 32, et base 16 arrangements de codage. Il discute également l'utilisation de retour à la ligne dans des données codées, l'utilisation du capitonnage dans des données codées, l'utilisation des caractères de non-alphabet dans des données codées, l'utilisation de différents alphabets de codage, et les codages canoniques.
Exemple
Une citation du Leviathan de Thomas Hobbes de : l'homme de
est distingué, non seulement par sa raison, mais par cette passion singulière d'autres animaux, qui est une convoitise de l'esprit, qui par une persévérance de plaisir dans la génération continue et infatigable de la connaissance, dépasse la véhémence courte de n'importe quel plaisir charnel.
est codé dans l'arrangement du base64 du MIME comme suit :
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
Dans la citation ci-dessus la valeur codée de l'homme de est TWFu . Codé dans le ASCII , le M , un , le n est stocké comme bytes 77, 97, 110, qui sont 01001101, 01100001, 01101110 dans la base 2. Ces trois bytes sont associés ensemble à des 24 amortisseurs de bit produisant 010011010110000101101110. Des paquets de 6 bits (6 bits a un maximum de 64 valeurs binaires différentes) sont convertis en 4 nombres (24 = 6x4) qui sont alors convertis en leurs valeurs correspondantes dans la base 64.
Exécution
(MIME) les procédés traditionnels du codage base64 et de décodage sont assez simples pour mettre en application. Ici un exemple using le Javascript est donné, y compris la ligne exigée par MIME/etc coupures à la ligne longueurs particulière. Il vaut de noter cependant, ce beaucoup de cordes codées de retour des fonctions base64 (par exemple dans PHP ) par base64 sans ligne se casse, car la ligne coupures peut être insérée facilement après codage, et beaucoup de fois le codage base64 est désiré seulement pour des données sans risque de transfert par l'intermédiaire du XML ou insertion dans une base de données, le &mdash etc. ; périodes où la ligne coupures sont connues pour être inutile et donc undesirable. Le caractère NL s'insérant et enlevant dans ces fonctions ici peut facilement être commenté dehors (ils sont chacun seulement une ligne dans les fonctions respectives) s'ils ne sont pas nécessaires. Un choix des caractères de la base 64 est nécessaire pour le codage, comme : lang=" de
Noter que dans de vraies réalisations, il vaut mieux d'énumérer explicitement la rangée/gâchis entiers pour chaque liste au-dessus de &mdash ; les bons mots ici sont donnés pour démontrer le concept aussi directement comme possible, plutôt qu'étant l'idéal dans la pratique.
La fonction du codage base64 : lang=" de
La fonction du décodage base64 : lang=" de
Outils en ligne
Il y a une série d'outils Base64 en ligne comme :Décoder le texte codé par Base64
Décodeur Base64
Encodeur Base64 et décodeur en ligne
Texte et dossiers en ligne de décodage et de codage
Base64 en ligne codent/décodent
Outil téléchargeable de source ouverte pour coder ou décoder Base64 dessus [[Unix] ou Win32] * StUU - Open Source UUDecoder rapide pour Macintosh par le Stuart Cheshire
Applications d'URL
Le codage Base64 peut être utile quand l'information de identification assez prolongée est employée dans un environnement de HTTP. Le Hibernate , un cadre de persistance de base de données pour le Java objecte, emploie le codage Base64 pour coder une identification unique relativement grande (le de généralement 128 bits UUIDs dans une corde pour que l'utilisation pendant qu'un paramètre de HTTP sous des formes de HTTP ou le HTTP OBTIENNENT les URL également, le besoin de beaucoup d'applications code des données binaires d'une manière dont est commode pour l'inclusion dans les URL, incluant dans les domaines cachés de forme de Web, et le Base64 est un codage commode pour les rendre non seulement d'une manière compacte, mais dans relativement illisible en essayant d'obscurcir la nature des données d'un observateur humain occasionnel.Using un URL-encodeur sur Base64 standard, cependant, est incommode car il traduira « + » et « / » des caractères en ordres ("+ » = « %2B » d'hexadécimal de pour cent-codés par spécial et « / » = « %2F "). Quand ceci plus tard est employé avec le stockage de base de données ou à travers les systèmes hétérogènes, ils eux-mêmes obstrueront sur « les % » de caractère produit par des URL-encodeurs (parce que « le % » de caractère est également employé dans la norme ANSI SQL comme carte d'invitation).
Pour cette raison, un Base64 modifié pour la variante d'URL existe, où le aucune remplissage de « = » sera employé, et « + » et « / » des caractères de Base64 standard sont respectivement remplacés par « * » et « - », de sorte qu'à l'aide des encodeurs/décodeurs d'URL ne soit plus nécessaire et n'ait aucun impact sur la longueur de la valeur codée, laissant la même forme codée intactes pour l'usage dans les bases de données relationnelles, des formes de Web, et des marques d'objet en général.
Un autre appelé variable a modifié Base64 pour des usages des regexps « ! - » au lieu de « * » pour remplacer le Base64 standard « + », parce que « + » et « * » peut être réservé pour les expressions régulières (la note que '' a employée dans ce qui précède variable d'IRCu ne fonctionnerait pas dans ce contexte).
Il y a d'autres variantes qui emploient le « _- » ou « . _ » quand la corde Base64 variable doit être employée dans les marques valides pour des programmes, ou « . - » à l'utilisation dans les marques nommées du XML ( Nmtoken ), ou même « au _ : » pour l'usage dans des marques plus restreintes de XML ( nommé).
D'autres applications
Base64 peut être employé dans une série de contextes :Thunderbird de
et évolution les deux utilisation Base64 d'obscurcir les mots de passe d'email
Base64 peut être employé pour transmettre et stocker le texte qui pourrait autrement causer la collision de délimiteur de
Base64 est employé souvent comme raccourci rapide mais peu sûr pour obscurcir des secrets sans encourir les frais généraux de la gestion des clés cryptographique
L'utilisation Base64 d'inondateurs d'éluder les outils anti- de base du Spam , qui souvent ne décodent pas Base64 et ne peuvent pas donc détecter des mots-clés dans les messages codés.
Base64 est employé pour coder des chaînes de caractères dans des dossiers du LDIF
Base64 est parfois employé pour inclure des données binaires dans un dossier du XML , using une syntaxe semblable à l'encoding=" de . Firefox 's bookmarks.html de par exemple.
Base64 est également employé en communiquant avec les dispositifs fiscaux de signature/impression (habituellement, au-dessus des ports périodiques ou parallèles) pour réduire au minimum le retard en transférant des caractères de reçu pour la signature.
Voir également
Base32 Ascii85
Citer-imprimable
Uuencode
YEnc
8BITMIME
URL
.
| Random links: | Théorie de miasme de la maladie | La chaleur (lutte professionnelle) | Norwood du sud | Bortezomib | La nourriture et la drogue de Smith | Base64 |