Base64算法介绍:Base64是网络上最常见的用于传输字节代码的编码方式之一,经常用在HTTP传递较长的标识信息情况下。例如邮件、http加密、截取http信息。
Base64算法详解:Base64编码把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。
例如:11010101 11000101 00110011
0011010100011100 0001010000110011
使用Java实现Base64算法是使用JDK中的sun.misc.BASE64Decoder类和sun.misc.BASE64Encoder类,由于sun.misc包下的BASE64Encoder及BASE64Decoder是sun公司的内部方法,并没有在java api中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。使用Eclipse和MyEclipse的参照BASE64Encoder及BASE64Decoder的正确用法
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64 {
//BASE64解密
public static byte[] decryptBASE64(String key) throws Exception {
return (new BASE64Decoder()).decodeBuffer(key);
}
//BASE64加密
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
public static void main(String[] args) throws Exception {
String inputStr="这是一个测试字符串aaabbbccc111222333";
System.out.println("原始数据:"+inputStr);
byte[] inputData = inputStr.getBytes();
String code = encryptBASE64(inputData);
System.err.println("BASE64加密后:" + code);
byte[] output = decryptBASE64(code);
String outputStr = new String(output);
System.err.println("BASE64解密后:" + outputStr);
System.out.println("加解密之后数据是否相等:"+inputStr.equals(outputStr));
}
}
</span>