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加密一般都会进行加盐操作