MD5加密——使用Java自帶的MessageDigest工具類實現

MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest開發出來,經MD2、MD3和MD4發展而來。

MD5 算法底層原理,簡單概括起來,MD5 算法的過程分爲四步:處理原文,設置初始值,循環處理分組數據,拼接結果。

這裏我們用Java自帶的MessageDigest工具類實現:

	/**
     * 獲得Md5加密
     *
     * @param str 原字符串
     * @return 加密後的字符串
     */
    public static String strToMd5(String str) {
        String md5Str = null;
        if (str != null && str.length() != 0) {
            try {
            	//獲取md5對象
                MessageDigest md = MessageDigest.getInstance("MD5");
                //將字符串轉換爲字節數組
                md.update(str.getBytes());
                //信息摘要對象對字節數組進行摘要,得到摘要字節數組
                byte b[] = md.digest();

                int i;
                StringBuffer buf = new StringBuffer("");
                //把摘要數組的每一個字節轉換成16進制
                for (int offset = 0; offset < b.length; offset++) {
                    i = b[offset];
                    if (i < 0) {
                        i += 256;
                    }
                    if (i < 16) {
                        buf.append("0");
                    }
                    //將字節數組轉換爲16進制字符串
                    buf.append(Integer.toHexString(i));
                }
                //32位
                md5Str = buf.toString();
                //16位
                //md5Str = buf.toString().substring(8, 24);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        return md5Str;
    }

詳細學習參考:https://blog.csdn.net/JunhuiXie/article/details/100630841

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章