MD5加密

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"));
	}

}
複製代碼
相關文章
相關標籤/搜索