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

}
复制代码
相关文章
相关标签/搜索