Base64 y otros algoritmos de codificación similares se usan comúnmente para convertir los datos binarios en datos de texto, con el propósito de simplificar el almacenamiento o la transmisión. Más específicamente, el algoritmo Base64 se usa principalmente para convertir los datos binarios en formato de cadena ASCII. Java Language proporciona una muy buena implementación del algoritmo Base64. Este artículo describirá brevemente cómo usar Base64 y cómo funciona.
La función de Base64: su objetivo principal no es el cifrado, su objetivo principal es convertir algunos números binarios en caracteres ordinarios para la transmisión de red. Dado que algunos caracteres binarios son caracteres de control en el protocolo de transmisión, no pueden transmitirse directamente y deben convertirse.
El primer método:
Use clases en Java que no están expuestas al público a través de la reflexión:
/ ****ENCODE BY BASE64*/ public static String codeDebase64 (byte [] input) lanza la excepción {class clazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); Método mainmethod = clazz.getMethod ("codificar", byte []. Class); mainMethod.setAccessible (verdadero); Objeto retobj = mainmethod.invoke (nulo, nuevo objeto [] {input}); return (string) retobj; } / ****Decode por base64* / public static byte [] decodebase64 (entrada de cadena) lanza la excepción {class clazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); Método mainmethod = clazz.getMethod ("decode", string.class); mainMethod.setAccessible (verdadero); Objeto retobj = mainmethod.invoke (nulo, entrada); return (byte []) retobj; } El segundo método:
Use Commons-Codec.jar
/ ** * @param bytes * @return */ public static byte [] decode (byte final [] bytes) {return base64.decodeBase64 (bytes); } / ** * Los datos binarios están codificados como cadena base64 * * @param bytes * @return * @throws excepción * / public static string code (final byte [] bytes) {return new String (base64.encodebase64 (bytes)); } El tercer método:
/ ** * Codificación * @param bstr * @return cadena */ public static string code (byte [] bstr) {return new sun.misc.base64Encoder (). Encode (bstr); } / ** * decodificación * @param str * @return string * / public static byte [] decode (string str) {byte [] bt = null; Pruebe {sun.misc.base64Decoder decoder = new sun.misc.base64Decoder (); bt = decoder.decodeBuffer (str); } catch (ioException e) {E.PrintStackTrace (); } return bt; }Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.