MD5

import org.apache.commons.codec.binary.Base16;
import sun.security.provider.MD5;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Test002 {
    static String newStr;
    public static void main(String[] args) {
        String test= md5("123456");
        test.toUpperCase();
        System.out.println(test);
    }
    public static String md5(String str1){
        final String finalstr="MD5";
        String str= str1+finalstr;

        byte[] bstr=null;
        try {
            //加密方式
            MessageDigest messageDigest=MessageDigest.getInstance("MD5");
            //对字符串进行加密
            messageDigest.update(str.getBytes());
            //获得加密后的数据
            bstr = messageDigest.digest();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
            //将数据转换为16进制数字
        String str16= new BigInteger(1,bstr).toString(16);
        return str16;
    }

}

 MD5不可逆加密法

但是对于相同的字符串有相同的结果

基于此对字符串进行比较,转换完的结果相同则为相同

MD5加密一般都会进行加盐操作

原文地址:https://www.cnblogs.com/springxian/p/14336251.html