MD5加密工具类
使用 MessageDigest 无需导入其他jar包,可快速调用返回
package com.example.Utils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { public static String md5(String str) { try { MessageDigest md = MessageDigest.getInstance("MD5");//返回实现制定摘要算法的MessageDigest,有异常需要捕获下异常 byte[] bytes = md.digest(str.getBytes());//定义一个变量,把str转换成byte类型,在调用Java提供的方法进行加密,并赋值给bytes String s = ""; //定义一个空字符串接收加密后的字符串 for (byte b : bytes) { //遍历数组 s += Integer.toHexString(b >>> 4 & 0xF);//这里右移的原因是byte有效位8位所以要将16进制拆分成2个值; //把数组里的每个值都无符号右移4,然后& 0xF(这是16进制),最后把结果装换成16进制并赋值给s s += Integer.toHexString(b & 0xF);//byte有效位8位所以要将16进制拆分成2个值; } return s;//把加密的字符串返回 } catch (NoSuchAlgorithmException e) { System.out.println("喵了个咪,出错了"); } return null; } public static void main(String[] args) { String a = "123456"; String s = md5(a); System.out.println(s); } // s +=Integer.toHexString(b >>>4&0xF); }
解密使用彩虹表