
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密
*
* @author Hongten
*
*/
public class MD5 {
public static void main(String[] args) {
System.out.println(MD5.getMD5("123456"));
}
/**
* 用md5编码后的码值
*
* @param sInput
* 明码
* @return md5加密后的密码
*/
public static String getMD5(String sInput) {
String algorithm = "";
if (sInput == null) {
return "null";
}
try {
algorithm = System.getProperty("MD5.algorithm", "MD5");
} catch (SecurityException se) {
}
MessageDigest md = null;
try {
md = MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte buffer[] = sInput.getBytes();
for (int count = 0; count < sInput.length(); count++) {
md.update(buffer, 0, count);
}
byte bDigest[] = md.digest();
BigInteger bi = new BigInteger(bDigest);
return (bi.toString(16));
}
}by: 洛云 发表于:2012-12-18 09:10:33 顶(0) | 踩(0) 回复
/**
* 获取一个字符串加密后的16进制值
*
* @param algorithm 摘要算法
* @param message 进行加密的byte数组
*
* @return String 计算后的结果
*/
public static String getDigest(String algorithm, byte[] message) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte[] result = md.digest(message);
StringBuffer valueHex = new StringBuffer();
for (int i = 0, tmp; i < result.length; i++) {
tmp = result[i] & 0xff;
if (tmp < 16) {
valueHex.append(0);
}
valueHex.append(Integer.toHexString(tmp));
}
return valueHex.toString();
}
/**
* 获取一个字符串加密后的16进制值
*
* @param algorithm 摘要算法名称
* @param message 进行加密的byte数组
*
* @return String 计算后的结果
*/
public static String getDigest(String algorithm, char[] message) {
return getDigest(algorithm, new String(message));
}





初级程序员
by: 洛云 发表于:2012-12-18 08:59:14 顶(0) | 踩(0) 回复
这段代码看起来很有问题。
网友回复
回复神马 : 什么问题?
顶(0) 踩(0) 2012-12-19 22:09:48
回复评论