package com.hs.common.utils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5 加密组件
 */
public class MD5Util {
    /**
     * 字符串默认编码格式
     */
    private final static String DEFAULT_CHARSET = "utf-8";

    private final static String MD5_ALGORITHM = "MD5";

    /**
     * MD5加密
     * @param data 待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static byte[] encodeMD5(String data) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        return encodeMD5(data.getBytes(DEFAULT_CHARSET));
    }

    /**
     * MD5加密
     * @param data 待加密数据
     * @return byte[] 消息摘要
     * @throws Exception
     */
    public static byte[] encodeMD5(byte[] data) throws NoSuchAlgorithmException {
        // 初始化MessageDigest
        MessageDigest md = MessageDigest.getInstance(MD5_ALGORITHM);
        // 执行消息摘要
        return md.digest(data);
    }
}
