天天看點

Java加密算法---sun.misc.BASE64Decoder與sun.misc.BASE64Encoder

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>