Base64加密
import org.bouncycastle.util.encoders.Base64;//Bouncy
Castle开源包
public class Base64Code
{
public final static String ENCODING= "UTF-8";//以3个字节表示汉字
public static String
encode(String data)throws Exception{
//加密
byte[]
b=Base64.encode(data.getBytes( ENCODING));//返回编码格式为“UTF-8”的字节数组
return new String(b,ENCODING); //构造一个新的编码格式为“UTF-8"的字符串
}
public static String
decode(String data)throws Exception{
//执行解码
byte[]
b=Base64.decode(data.getBytes( ENCODING));
return new String(b,ENCODING);
}
}
import static org.junit.Assert.*;//测试包
public class test{
public final static void main(String[]
args) throws Exception{
String inputStr= "Java加密与解密艺术" ;
System. out.println("原文:\t" +inputStr);
//进行Base64编码
String code=Base64Code. encode(inputStr);
System. out.println("编码后:\t" +code);
//Base64解码
String outputStr=Base64Code. decode(code);
System. out.println("解码后:\t" +outputStr);
//验证Base64编码解码一致性
assertEquals(inputStr,outputStr);
}
/*
* 原文: Java加密与解密艺术
编码后: SmF2YeWKoOWvhuS4juino+WvhuiJuuacrw==
解码后: Java加密与解密艺术
* */
}
Commons Codec开源包,加/解密
import org.apache.commons.codec.binary.Base64;//apache开元包,commons Codec
public class Commons_Base64
{
public static final String Encoding= "UTF-8";
public static String
encode(String data)throws Exception{
byte[]
b=Base64.encodeBase64(data.getBytes( Encoding));
return new String(b,Encoding);
}
//安全加密
public static String
encodeSafe(String data)throws Exception{
byte[]
b= Base64.encodeBase64(data.getBytes( Encoding), true );
return new String(b,Encoding);
}
public static String
decode(String data) throws Exception{
byte[]
b=Base64.decodeBase64(data.getBytes( Encoding));
return new String(b,Encoding);
}
}
import static org.junit.Assert.*;
public class test{
public final static void main(String[]
args) throws Exception{
String inputStr= "Java加密与解密艺术" ;
System. out.println("原文:\t" +inputStr);
//base64加密
String encode=Commons_Base64. encode(inputStr);
System. out.println("编码后:\t" +encode);
//base64安全加密
String encodeSage=Commons_Base64. encodeSafe(inputStr);
System. out.println("安全加密后:\t" +encodeSage);
//base64解码
String outputStrSafe=Commons_Base64. decode(encodeSage);
String outputStr=Commons_Base64. decode(encode);
System. out.println("安全解码:\t" +outputStrSafe);
System. out.println("解码:\t" +outputStr);
//验证一致性
assertEquals(inputStr,outputStr);
}
/*
* 原文: Java加密与解密艺术
编码后: SmF2YeWKoOWvhuS4juino+WvhuiJuuacrw==
安全加密后: SmF2YeWKoOWvhuS4juino+WvhuiJuuacrw==
安全解码: Java加密与解密艺术
解码: Java加密与解密艺术
*
* */
}
关于“安全加密”的区别:调试如下:
安全加密的字符串后有"\r\n",换行符。
从输出结果中也可以发现多了一个换行。