java之md5加密算法


/**
 * @author 
 *
 */
public class MD5 {

    private static final String[] digital = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e",
            "f" };

    /**
     * 
     * <p>
     * Title: initMD5
     * </p>
     * <p>
     * Description: md5加密
     * </p>
     * 
     * @param txt
     * @return
     * @throws Exception String
     */
    public static String initMD5(String txt) throws Exception {

        // 獲取封裝MD5算法的核心類
        MessageDigest md5 = MessageDigest.getInstance("MD5");

        // 將明文經過md5加密后變成長度位16字節的數組----->32位的字符串(16進制)
        byte[] bytes = md5.digest(txt.getBytes("utf-8"));
        // 用來保存最終的密文
        String miWen = "";
        for (byte b : bytes) {
            int temp = b;
            if (temp < 0) {
                temp += 256;
            }
            // 經過判斷后,temp一定是正數
            int index1 = temp / 16;// 取商
            int index2 = temp % 16;// 取余
            miWen += digital[index1] + digital[index2];

        }
        return miWen;
    }

    /**
     * 
     * <p>Title: finalMD5</p>  
     * <p>Description: md5最終加密</p>  
     * @param txt
     * @return
     * @throws Exception
     * String
     */
    public static String finalMD5(String txt) throws Exception {
        return initMD5(initMD5(initMD5(txt + "md5" + txt) + "md5" + txt));
    }

    public static void main(String[] args) throws Exception {
        String miWen = MD5.finalMD5("123456");
        System.out.println(miWen);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM