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"));
}
}
複製代碼