首页 > 代码库 > Apache commons 之 codec 简介和入门代码
Apache commons 之 codec 简介和入门代码
Java JDK有一个 java.security 的 package, 提供了 MessageDigest 的编码方式, Digest Algorithms 包括了 MD2, MD5, SHA-1, SHA-256, SHA-384, 及 SHA-512 等等;
Codec 是Commons项目中用来处理常用的编码方法的工具类包,例如HEX、SHA1、MD5、Base64等等目前最新版本为1.4。
Base64/HEX是对称加密,MD5是不可逆加密,千万要注意
一些简单的加密示例代码:
package test.ffm83.commons.codec;
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
/**
* 通过commonscodec 进行一些简单的加密解密等
* @author范芳铭
*/
public classCodecUsage {
public static void main(String[] args){
Stringstr = "FanFangming";
Stringbase64 = encodeBaseTest(str);
decodeBaseTest(base64);
Stringhex = encodeHexTest(str);
decodeHexTest(hex);
MD5Test(str);
ShaTest(str);
}
// Base64编解码
private static StringencodeBaseTest(String str) {
Base64base64 = newBase64();
try {
str= base64.encodeToString(str.getBytes("UTF-8"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("Base64编码后:" + str);
return str;
}
private static void decodeBaseTest(Stringstr) {
str= newString(Base64.decodeBase64(str));
System.out.println("Base64解码后:" + str);
}
// Hex编解码
private static StringencodeHexTest(String str) {
try {
str= Hex.encodeHexString(str.getBytes("UTF-8"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("Hex编码后:" + str);
return str;
}
private static StringdecodeHexTest(String str) {
Hexhex = newHex();
try {
str= newString((byte[])hex.decode(str));
}catch(DecoderException e) {
e.printStackTrace();
}
System.out.println("Hex编码后:" + str);
return str;
}
// MD5加密
private static String MD5Test(Stringstr) {
try {
str= newString(DigestUtils.md5Hex(str.getBytes("UTF-8")));
System.out.println("MD5编码后:" + str);
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
// SHA编码
private static String ShaTest(Stringstr) {
try {
str= newString(DigestUtils.sha256(str.getBytes("UTF-8")));
System.out.println("SHA编码后:"+ str);
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
}
运行结果如下:
Base64 编码后:RmFuRmFuZ21pbmc=
Base64 解码后:FanFangming
Hex 编码后:46616e46616e676d696e67
Hex 编码后:FanFangming
MD5 编码后:922b65d5455be7d9a4875b6b1bde638d
SHA 编码后:31fcbfd641e54747d20288f883458664a05788a9
Apache commons 之 codec 简介和入门代码