Edited by DingDangXiaoMa
java MD5加密簡單實現(xiàn):
源碼如下,并有注釋:
package com.zh.test.util;
import
java.security.MessageDigest;
import
java.security.NoSuchAlgorithmException;
/**
* 加密類.對輸入的字符串進行加密.
*
* @author Administrator
*
*/
public class MyEncrypt {
/**
* 對字符串進行加密處理.用到的算法是JDK 1.5中的 MD5算法 . MD5是一個不可逆的算法.
*
* @param toEncrypt
* @return
* @throws
Exception
*/
public static String encrypt(String
toEncrypt) throws Exception {
String inStr = toEncrypt;
MessageDigest md = null;
String out =
null;
System.out.println("轉(zhuǎn)變之前的長度: " +
inStr.getBytes().length);
try {
md
= MessageDigest.getInstance("MD5");
byte[] digest =
md.digest(inStr.getBytes());
out =
byte2hex(digest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw
e;
}
return out;
}
/**
* 把二進制數(shù)組轉(zhuǎn)換成十六進制.
*
* @param
b
* @return
*/
private static String
byte2hex(byte[] b) {
System.out.println("數(shù)組長度; " +
b.length);
String hs = "";
String stmp =
"";
for (int n = 0; n < b.length; n++) {
stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1) {
hs =
hs + "0" + stmp;
} else {
hs = hs + stmp;
}
}
return hs.toUpperCase();
}
/**
* 對加密算法進行測試.
*
* @param args
*
參數(shù)
* @throws Exception
* 異常處理.
*/
public static void main(String[] args) throws Exception {
String toEncrypt = "123456";
String toEncrypt2
= "aaa1112您好好`11887444....---00022";
String outString =
MyEncrypt.encrypt(toEncrypt2);
System.out.println(outString);
System.out.println("2C1835B7872CAB44D5D87312B85D829A".length());
}
}
以上部分是對MD5算法的簡單實現(xiàn).網(wǎng)上也有很多這樣的資料,誰有興趣,可以找更多的資料,
從網(wǎng)上看,說MD5是一個不可逆的運算,也不知道是不是這樣?
可以參考網(wǎng)站:
http://www.moon-soft.com/doc/2624.htm