package com.sonic.frog.utils;

import org.apache.commons.codec.digest.DigestUtils;

import java.io.UnsupportedEncodingException;
import java.security.SignatureException;

/**
 * md5加密
 * 
 * @author Xi.He
 *
 */
public class MD5Util {

	/**
	 * 加密字符串（大写）
	 * @param text 需要加密的字符串
	 * @param charset 编码格式
	 * @return 签名结果
	 */
	public static String upperDigest(String text, String charset) {
		return DigestUtils.md5Hex(getContentBytes(text, charset)).toUpperCase();
	}

	/**
	 * 加密字符串(小写)
	 * @param text 需要加密的字符串
	 * @param charset 编码格式
	 * @return 签名结果
	 */
	public static String digest(String text, String charset) {
		return DigestUtils.md5Hex(getContentBytes(text, charset));
	}


	/**
	 * 加密字符串(小写)
	 * @param text 需要加密的字符串
	 * @return 签名结果
	 */
	public static String digest(String text) {
		return DigestUtils.md5Hex(getContentBytes(text, "UTF-8"));
	}


	/**
	 * @param content 内容
	 * @param charset 编码
	 * @return byte[]
	 * @throws SignatureException
	 * @throws UnsupportedEncodingException
	 */
	private static byte[] getContentBytes(String content, String charset) {
		if (charset == null || "".equals(charset)) {
			return content.getBytes();
		}
		try {
			return content.getBytes(charset);
		} catch (UnsupportedEncodingException e) {
			throw new RuntimeException(e);
			// ExceptionUtils.throwPipelineError(true,
			// ResponseCode.PIPELINE_MD5_SIGN_ERROR, charset);
		}
	}
	public static void main(String[] args) {
		System.out.println(digest(digest("Danong2018")));
	}
}
