天天看点

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>