java MD5加密的工具类

2018-06-18 03:54:01来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

import java.security.MessageDigest;

/**
 * MD5加密工具类
 * @author zwq
 */
public class MD5Util {
    /**
     * MD5加密
     * @param message 需要加密的信息,例:123456
     * @return 返回MD5加密后的32位大写字符串,例:E10ADC3949BA59ABBE56E057F20F883E
     */
    public static String encode(String message) throws Exception {
        String md5 = "";
        MessageDigest md = MessageDigest.getInstance("MD5");  // 创建一个md5算法对象
        byte[] messageByte = message.getBytes("UTF-8");
        byte[] md5Byte = md.digest(messageByte);              // 获得MD5字节数组,16*8=128位
        md5 = bytesToHex(md5Byte);                            // 转换为16进制字符串
        return md5;
    }

    /***
     * 将字节数组转换成16进制字符串
     * @param bytes 需要转换的字节数组,例:[-31,10,-36,57,73,-70,89,-85,-66,86,-32,87,-14,15,-120,62]
     * @return 返回转换后的大写字符串,例:E10ADC3949BA59ABBE56E057F20F883E
     */
    public static String bytesToHex(byte[] bytes) {
        StringBuffer hexStr = new StringBuffer();
        int num;
        for (int i = 0; i < bytes.length; i++) {
            num = bytes[i];
            if(num < 0) {
                num += 256;
            }
            if(num < 16){
                hexStr.append("0");
            }
            hexStr.append(Integer.toHexString(num));
        }
        return hexStr.toString().toUpperCase();
    }
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring @Value注入值失败,错误信息提示:Could not resolve pla

下一篇:Java多线程一个有趣的题目