commons-codec是Apache开源组织提供的用于摘要运算、编码的包。以下是Base64编解码、MD5加密和URLCodec编解码的基本操作。
Base64是可解码的,通常用于把二进制数据编码为可写的字符形式的数据。
public void testBase64(){
System.out.println("==========Base64==========");
//假设密码为123456abc+
byte[] passwd = "123456abc+".getBytes();
Base64 base64 = new Base64();
//加密
String enPasswd = base64.encodeAsString(passwd);
System.out.println("加密后:" + enPasswd);
//解密
String dePasswd = new String(base64.decode(enPasswd));
System.out.println("解密后:" + dePasswd);
}
输出:
==========Base64==========
加密后:MTIzNDU2YWJjKw==
解密后:123456abc+
MD5是一种不可逆的加密技术,不过据说现在MD5也不怎么安全了,具体可以google以下MD5碰撞。
另外,在DigestUtils这个类下还有其他各种算法,例如SHA1等。
public void testMD5(){
System.out.println("==========MD5==========");
String enPasswd = DigestUtils.md5Hex("123456abc+");
System.out.println("加密后:" + enPasswd);
}
输出:
==========MD5==========
加密后:ce356c9af7dc5afbc8b22685edade098
URLCodec可以对url中的参数进行编码。
public void testURLCodec(){
System.out.println("==========URLCodec==========");
URLCodec urlCodec = new URLCodec();
String data = "陈某某abc+";
try {
String encode = urlCodec.encode(data, "UTF-8");
System.out.println("加密后:" + encode);
String decode = urlCodec.decode(encode, "UTF-8");
System.out.println("解密后:" + decode);
} catch (Exception e) {
e.printStackTrace();
}
}
输出:
==========URLCodec==========
加密后:%E9%99%88%E6%9F%90%E6%9F%90+abc%2B
解密后:陈某某 abc+