MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3MD4

1、java自带MD5算法

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @Auther: wuyilong
 * @Date: 2019/4/17 09:10
 * @Description:
 */
public class MD5 {

    public static String md5(String text) {
        byte[] secretBytes = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(text.getBytes());
            secretBytes = md.digest();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有MD5这个算法");
        }

        // 将加密后的数据转换为16进制数字
        String md5code = new BigInteger(1, secretBytes).toString(16);
        // 如果生成数字未满32位,需要前面补0
        for(int i = 0; i < 32 - md5code.length(); i++) {
            md5code = "0" + md5code;
        }
        return md5code;
    }

    public static void  main(String[] args) {
        String str = "123";
        System.out.println(md5(str));
    }
}

  

2、commons-codec提供的MD5算法

在maven文件中加入依赖

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.11</version>
    </dependency>

  

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

/**
 * @Auther: wuyilong
 * @Date: 2019/4/17 09:10
 * @Description:
 */
public class MD5 {
    
    public static String md5(String text, String key) {
        String encodeStr = DigestUtils.md5Hex(text+key);
        return encodeStr;
    }

    public static boolean verify(String text, String key, String md5) {
        String md5Text = md5(text, key);
        if(md5Text.equalsIgnoreCase(md5)) {
            return true;
        }

        return false;
    }


    public static void  main(String[] args) {
        String text = "wu";
        String key = "jun";
        System.out.println(md5(text, key));
        System.out.println(verify(text, key, md5(text, key)));
    }
}

  

原文地址:https://www.cnblogs.com/wylwyl/p/10721456.html