Base64 est l'une des méthodes de codage les plus courantes du réseau pour transmettre du code d'octets à 8 bits. Vous pouvez vérifier RFC2045 ~ RFC2049, qui contient des spécifications de mime détaillées. Le codage de base64 peut être utilisé pour transmettre des informations d'identification plus longues dans les environnements HTTP. Par exemple, dans le système de persistance Java Hibernate, la base64 est utilisée pour coder un identifiant unique unique (généralement un UUID 128 bits) en une chaîne, qui est utilisée comme paramètre dans les formulaires HTTP et les URL HTTP. Dans d'autres applications, il est souvent nécessaire de coder des données binaires sous une forme adaptée au placement dans les URL (y compris des champs de formulaire cachés).
À l'heure actuelle, le codage de base64 n'est pas seulement court, mais aussi illisible, c'est-à-dire que les données codées ne seront pas directement vues à l'œil nu.
Il existe de nombreuses façons de crypter Java. Maintenant, je vais partager avec vous une méthode de cryptage Base64.
package com.crypt; Import Sun.Misc.Base64Decoder; Import Sun.Misc.Base64Encoder; / ** * Base64 Encryption et décryptage * @Author Yuanwei * / Classe publique Base64 {/ ** * Base64 Decrypt * * @param Key * @return * @throws exception * / Public Static Byte [] DecryptBase64 (String Key) Base64DecOder ()). DecodeBuffer (clé); } / ** * Base64 Encryption * * @param key * @return * @throws exception * / public static String EncryptBase64 (byte [] key) lève exception {return (new base64encoder ()). EncodeBuffer (key); }}Pourquoi utiliser le cryptage Base64?
Le rôle du codage de base64: car certains systèmes ne peuvent utiliser que des caractères ASCII. Base64 est une méthode utilisée pour convertir les données des caractères non ASCII en caractères ASCII. Il utilise les caractères et les encodages utilisés dans le tableau ci-dessous.
De plus, Base64 est particulièrement adapté pour transmettre rapidement des données sous les protocoles HTTP et MIME.
Base64 n'est en fait pas un algorithme de chiffrement et de décryptage dans le champ de sécurité. Bien que parfois vous voyez souvent le cryptage et le déchiffrement de la base64. En fait, Base64 ne peut être considéré que comme un algorithme de codage, code le contenu des données à transmission. Bien que le texte d'origine devienne un format de caractère qui ne peut pas être vu après le codage de la base64, cette méthode est très basique et simple.
La méthode de codage Base64 nécessite de convertir tous les trois octets 8 bits en quatre octets 6 bits. Parmi eux, tous les 6 bits valides des quatre octets après la conversion sont des données valides, et les deux bits de rechange sont complétés avec 0 pour devenir un octet. Par conséquent, la redondance des données causée par la base64 n'est pas très grave. Base64 est une méthode de codage populaire aujourd'hui car elle est rapide et simple à coder.
Supplément de connaissances:
Standard Base64 ne convient pas à la transmission directe dans les URL, car le codeur URL modifiera les caractères "/" et "+" dans la base64 standard en une forme comme "% xx", et ces nombres "%" doivent être convertis lorsqu'ils sont stockés dans la base de données, car les chiffres "%" ont été utilisés comme wildcards dans ANSI SQL.
Pour résoudre ce problème, un codage Base64 amélioré pour les URL peut être utilisé. Il ne remplit pas le nombre '=' à la fin et modifie les "+" et "/" dans la base 64 standard en "*" et "-" respectivement, ce qui élimine la conversion requise lors de l'encodage et du décodage et du stockage de la base de données, évite l'augmentation de la durée des informations de codage dans ce processus, et unifie le format d'identifiants d'objet dans les données, les formes, etc.
Il existe une autre variante Base64 améliorée pour les expressions régulières, qui modifie "+" et "/" à "!" et "-", parce que "+", "*" et "[" et "]" utilisés dans l'IRCU peuvent avoir des significations spéciales dans les expressions régulières.
Il existe également des variantes qui modifient "+ /" vers "_-" ou "._" (utilisé comme nom d'identifiant dans le langage de programmation) ou ".-" (utilisé pour nmtoken en xml) ou même "_:" (utilisé pour le nom en xml).
Base64 nécessite la conversion de tous les trois octets 8 bits en quatre octets 6 bits (3 * 8 = 4 * 6 = 24), puis ajoutant deux 0s élevés à 6 bits pour former quatre octets 8 bits. C'est-à-dire que la chaîne convertie sera théoriquement 1/3 plus longue que celle d'origine.
Ce qui précède est tout sur les algorithmes de cryptage et de décryptage Base64 et Base64. J'espère que cela sera utile pour le chiffrement et le décryptage d'apprentissage de tous.