由于一個應用,我需要一個MD5算法加密數據,我查看了網上一些資料,發現其他的語言都是要自己實現的,但是Java就很簡單,因為java中的類已經處理好了,而且還可以選其他的加密算法,如SHA,下面就給一個例子
/*
* Created on 2005-5-21
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.merrylin.util;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MD5Class {public static String MD5Encrypt(String inStr) {
MessageDigest md = null;
String outStr = null;try {
md = MessageDigest.getInstance("MD5"); //可以選中其他的算法如SHA
byte[] digest = md.digest(inStr.getBytes()); //返回的是byet[],要轉化為String存儲比較方便
outStr = bytetoString(digest);
} catch (NoSuchAlgorithmException nsae) {
nsae.printStackTrace();
}return outStr;
}public static String bytetoString(byte[] digest) {
String str = "";
String tempStr = "";for (int i = 1; i < digest.length; i++) {
tempStr = (Integer.toHexString(digest[i] & 0xff));
if (tempStr.length() == 1) {
str = str + "0" + tempStr;
} else {
str = str + tempStr;
}
}return str.toLowerCase();
}
}
簡單吧,如果你只是要應用,就可以不知道MD5的算法了,但是要想知道更多,可以參看網上的源碼或是http://www.donews.net/qiyadeng/archive/2005/05/26/399340.aspx。但是注意MD5加密算法,破解還是很困難,雖然報道稱山東大學的王小云教授好像是已經尋找到了破解的方法。