欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java加密系列——MD5加密实现

程序员文章站 2022-03-14 19:37:08
...

MD5就不多说了吧 直接上代码。

import java.security.MessageDigest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 * @ClassName: Md5Util
 * @Description: MD5加密工具类
 * @author: eric.zhang
 * @date: 2018年5月30日 下午4:42:27
 */
public class Md5Util {
  private static final Logger LOG = LoggerFactory.getLogger(Md5Util.class);

  /**
   * 通过盐值对字符串进行MD5加密
   *
   * @param param 需要加密的字符串
   * @param salt 盐值
   * @return
   */
  public static String MD5(String param, String salt) {
    return MD5(param + salt);
  }

  /**
   * 加密字符串
   *
   * @param s 字符串
   * @return
   */
  public static String MD5(String s) {
    char[] hexDigits =
        {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    try {
      byte[] btInput = s.getBytes("utf-8");
      MessageDigest mdInst = MessageDigest.getInstance("MD5");
      mdInst.update(btInput);
      byte[] md = mdInst.digest();
      int j = md.length;
      char[] str = new char[j * 2];
      int k = 0;
      for (byte byte0 : md) {
        str[k++] = hexDigits[byte0 >>> 4 & 0xf];
        str[k++] = hexDigits[byte0 & 0xf];
      }
      return new String(str);
    } catch (Exception e) {
      LOG.error("MD5生成失败", e);
      return null;
    }
  }
}