La base64 et d'autres algorithmes de codage similaires sont couramment utilisés pour convertir les données binaires en données de texte, dans le but de simplifier le stockage ou la transmission. Plus précisément, l'algorithme Base64 est principalement utilisé pour convertir les données binaires en format de chaîne ASCII. Le langage Java fournit une très bonne implémentation de l'algorithme Base64. Cet article décrira brièvement comment utiliser Base64 et comment il fonctionne.
La fonction de Base64: son objectif principal n'est pas le cryptage, son objectif principal est de convertir certains nombres binaires en caractères ordinaires pour la transmission du réseau. Étant donné que certains caractères binaires sont des caractères de contrôle dans le protocole de transmission, ils ne peuvent pas être directement transmis et doivent être convertis.
La première méthode:
Utilisez des cours en Java qui ne sont pas exposés au public par la réflexion:
/ *** * Encoder par base64 * / public static String encodebase64 (byte [] entrée) lève l'exception {class Clazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); Méthode MainMethod = Clazz.getMethod ("Encoder", Byte []. Classe); mainMethod.setAccessible (true); Objet reverObj = mainMethod.invoke (null, nouvel objet [] {input}); return (String) re -boBj; } / *** * Decode par base64 * / public static octet [] decodeBase64 (entrée de chaîne) exception {class cllazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); Méthode MainMethod = Clazz.getMethod ("Decode", String.class); mainMethod.setAccessible (true); Objet reverObj = MainMethod.invoke (null, entrée); return (byte []) rebj; } La deuxième méthode:
Utiliser Commons-Codec.jar
/ ** * @param bytes * @return * / public static byte [] decode (byte final [] octets) {return base64.decodeBase64 (bytes); } / ** * Les données binaires sont encodées sous forme de chaîne de base64 * * @param bytes * @return * @throws exception * / public static String Encode (final byte [] bytes) {return new String (base64.encodeBase64 (bytes)); } La troisième méthode:
/ ** * Encoder * @param bstr * @return String * / public static String Encode (byte [] bstr) {return new Sun.Misc.Base64Encoder (). Encode (bstr); } / ** * Decoding * @param str * @return String * / public static byte [] Decode (String str) {byte [] bt = null; essayez {Sun.Misc.Base64Decoder Decoder = new Sun.Misc.Base64Decoder (); bt = decoder.decodeBuffer (str); } catch (ioException e) {e.printStackTrace (); } return bt; }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.