package com.zte.shopping.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util2 {
private static final String[] digtal ={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
private static String initMD5(String txt) throws NoSuchAlgorithmException, UnsupportedEncodingException {
//获取MD5对象
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] bytes = md5.digest(txt.getBytes("UTF-8"));
String enctry = "";
for (byte b: bytes) {
int temp = b;
if (temp < 0){
temp = temp + 256;
}
//第一个下标
int i = temp/16;
//第二个下标
int j = temp%16;
enctry += digtal[i] + digtal[j];
}
return enctry;
}
public static String finishMD5(String txt) throws UnsupportedEncodingException, NoSuchAlgorithmException {
String s = initMD5(initMD5(initMD5(txt)+"jiami")+"jiami");
return s;
}
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
String s =finishMD5("123456") ;
System.out.println(s);
}
}
复制代码
package com.zte.shopping.util;
import sun.misc.BASE64Encoder;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密 工具类
* MD5加密算法在国外至今没有被破解
* 可是到中国没多久就被中国的3个教授破解了
*/
public class MD5Util
{
public static String md5(String str)
{
try
{
// 编译期异常 java.security.NoSuchAlgorithmException
MessageDigest md = MessageDigest.getInstance("MD5");
// str.getBytes("utf-8") 编译期异常
// java.io.UnsupportedEncodingException
byte[] byteArr = md.digest(str.getBytes("utf-8"));
// 虽然加密了,可是看上去像乱码(堄{溽觰驛?鮽堲)
// return new String(byteArr);
// 定义一个BASE64Encoder实例 BASE64Encoder sun公司的
BASE64Encoder encoder = new BASE64Encoder();
// HIjTe+Th03XzQdkG9YKI9A==
return encoder.encode(byteArr);
} catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return str;
}
/**
* 之后用单元测试
* 不要用main()方法
*/
public static void main(String[] args)
{
System.out.println(md5("123456"));
}
}
复制代码