MD5即Message-Digest Algorithm 5(信息-摘要算法5): 方法一: 添加jar包:${SPRING_HOME}/lib/jakarta-commons/commons-codec.jar import org.apache.commons.codec.digest.DigestUtils; public class MD5Util { // 返回md5加密后的字符串 public static String md5(String message) { String md5Digest = DigestUtils.md5Hex(message); return md5Digest; } } 方法二: // JDK自带的 import java.security.MessageDigest; // 也是JDK自带的,可以在OpenJDK中查看其源码 import sun.misc.BASE64Encoder; public class MD5Util { // 返回md5加密后的字符串 public static String md5(String message) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] md5Bytes = md.digest(); // 采用Base64编码把字节序列转换为明文 BASE64Encoder base64Encoder = new BASE64Encoder(); return base64Encoder.encode(md5Bytes); } catch (Exception e) { throw new RuntimeException(e); } } } 补充:Base64编码 编码原理:将3个字节转换成4个字节((3X8)=24=(4X6)) 先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了。 解码原理: 将4个字节转换成3个字节 先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位,这样就还原了。 说明: 1,Base64编码可用于在HTTP环境下传递较长的标识信息 2,Base64编码后的标识信息长度为24 3, 3个字节转成4个字节后,每一个字节表示的最小和最大数分别是:00000000 ~ 00111111 0~63共64个整数,所以称之为Base64,它其实是一个码表,每个数字对应一个可见字符
时间: 2024-11-07 21:39:15