1.密码123456 MD5后“4QrcOUm6Wau+VuBX8g+IPg==”现在系统用应用了该种算法,貌似不像很标准的MD5加密,实现目的就可以了。可以算是MD5和base64综合体。
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
/**
* MD5加密得法.
*/
//采用MD5得法进行不可逆加密.用于密码保护.直接把需要加密的String传入方法就可以实现MD5加密.
public class Md5Utils {
public static String MD5(String pwd){
String str1=null;
try {
MessageDigest md=MessageDigest.getInstance("MD5");// 使用MD5加密
byte[] bs=md.digest(pwd.getBytes());// 把传入的字符串转换成字节数组
BASE64Encoder encoder=new BASE64Encoder();
str1=encoder.encode(bs);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str1;// 返回加密后的字符串.
}
}
2.密码123456 MD5后“e10adc3949ba59abbe56e057f20f883e”,纯粹的MD5加密。16位小写
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
public MD5() {
}
/**
* MD5 加密
*/
public String MD5Encode(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString();
}
}