BASE64加密解密技术:
Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。它使用下面表中所使用的字符与编码。
而且base64特别适合在http,mime协议下快速传输数据。
base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。
Base64编码方法要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效数据,空余的那两个 bit用0补上成为一个字节。因此Base64所造成数据冗余不是很严重,Base64是当今比较流行的编码方法,因为它编起来速度快而且简单
Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。它使用下面表中所使用的字符与编码。
而且base64特别适合在http,mime协议下快速传输数据。
base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。
Base64编码方法要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效数据,空余的那两个 bit用0补上成为一个字节。因此Base64所造成数据冗余不是很严重,Base64是当今比较流行的编码方法,因为它编起来速度快而且简单.
package com.wfc.servlet;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* BASE64加密解密
*/
public class BASE64
{
public static byte[] decryptBASE64(String key) throws Exception {
return (new BASE64Decoder()).decodeBuffer(key);
}
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
public static void main(String[] args) throws Exception
{
String data = BASE64.encryptBASE64("itjavawfc".getBytes());
System.out.println("加密前:"+data);
//aXRqYXZhd2Zj d2ZjODY4Njkw
byte[] byteArray = BASE64.decryptBASE64(data);
System.out.println("解密后:"+new String(byteArray));
}
}
使用的时候必须先导入jar包(该jar包时针对sun公司内部员工使用的,我们需要使用的时候必须让其可用)
出现了"sun.misc.BASE64Encoder找不到jar"的错误,解决的办法是:右键项目》属性》Java Build Path》jre System Library 》access rules
》resolution选择accessible,下面填上**点击确定即可!
总结:1.Base64,是一种加密算法,在网站登录的时候结合cookie使用,对登录帐号和密码进行加密,可以起到部分安全的作用(部分安全是指将帐号密码加密后存储到cookie中去,一般人看不懂)
2.Base64是一种很好的编码,适合在http,mime协议下快速传输数据,在很多系统性只支持ASCII编码,这样就可以将非ASCII编码的文件、内容等在网络上传输。