commons-codec是Apache开源组织提供的用于摘要运算、编码的包。以下是Base64编解码、MD5加密和URLCodec编解码的基本操作。
Base64
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是一种不可逆的加密技术,不过据说现在MD5也不怎么安全了,具体可以google以下MD5碰撞。
另外,在DigestUtils这个类下还有其他各种算法,例如SHA1等。
public void testMD5(){System.out.println("==========MD5==========");String enPasswd = DigestUtils.md5Hex("123456abc+");System.out.println("加密后:" + enPasswd);}
输出:
==========MD5==========加密后:ce356c9af7dc5afbc8b22685edade098
URLCodec
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+