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>