MD5加密算法

MD5简介

MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一种将任意长度的信息压缩至某一固定长度(称之为消息摘要)的函数(该压缩过程不可逆)。在MD5算法中,这个摘要是指将任意数据映射成一个128位长的摘要信息。并且其是不可逆的,即从摘要信息无法反向推演中原文,在演算过程中,原文的内容也是有丢失的。

工具类

package com.dbl.util;

import java.security.MessageDigest;


/**
 * @Author 大菠萝
 * @Create 2024/7/4 14:02
 * Description:
 */
public class MD5Util {

    /**
     * (支持大小写,默认小写)
     *
     * @param str       要加密的数据
     * @param uppercase 是否转为大写  大写:T  小写:F
     * @return
     */
    public static String getMD5(String str,boolean uppercase){
        // 加密后的16进制字符串
        String hexStr = "";
        try {
            // 此 MessageDigest 类为应用程序提供信息摘要算法的功能
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            // 转换为MD5码
            byte[] digest = md5.digest(str.getBytes("utf-8"));
            // byte[]字节数组转16进制
            StringBuffer sb = new StringBuffer(digest.length);
            String sTemp;
            for (int i = 0; i < digest.length; i++) {
                sTemp = Integer.toHexString(0xFF & digest[i]);
                if (sTemp.length() < 2)
                    sb.append(0);
                sb.append(sTemp.toUpperCase());
            }
            hexStr = sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return uppercase ? hexStr : hexStr.toLowerCase();
        //        16位就是截取一下就可以
        //System.out.println(MD5Util.getMD5(str,true).substring(8, 24));
    }
    
}

posted @ 2024-09-14 09:50  大菠萝zZ  阅读(36)  评论(0)    收藏  举报