標籤:apache java code 原始碼
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;
}
}
運行結果如下:
Base 64 編碼後:RmFuRmFuZ21pbmc=
Base64 解碼後:FanFangming
Hex 編碼後:46616e46616e676d696e67
Hex 編碼後:FanFangming
MD5 編碼後:922b65d5455be7d9a4875b6b1bde638d
SHA 編碼後:31fcbfd641e54747d20288f883458664a05788a9
Apache commons 之 codec 簡介和入門代碼