Posted on 2005-09-20 21:24
qiyadeng 阅读(468)
评论(0) 编辑 收藏 所属分类:
J2EE
由于一个应用,我需要一个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加密算法,破解还是很困难,虽然报道称山东大学的王小云教授好像是已经寻找到了破解的方法。