1.基本原理
MD5加密算法,其全称是Message-Digest Algorithm 5,通常被称为信息摘要算法,所谓的信息摘要就是把明文内容按一定规则生成一段哈希(hash)值,即得到这段明文内容的信息摘要。利用MD5可以基于任意长度的明文字符串生成128位的哈希值,结果唯一且不可逆,因此MD5经常被用于防止信息被篡改、数字签名、以及对明文进行加密等场景。
2.加密原理
MD5算法加密的过程分为三步:处理原文,设置初始值,加密运算
3.直接上JavaMD5加密工具代码
package com.star.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @Description: MD5加密工具类
* @Author: Athy
* @QQ群: 567177147
*/
public class MD5Utils {
/**
* @Description: MD5加密
* @Auther: ONESTAR
* @Date: 17:19 2022/12/23
* @Param: 要加密的字符串
* @Return: 加密后的字符串
*/
public static String code(String str){
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[]byteDigest = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < byteDigest.length; offset++) {
i = byteDigest[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
//32位加密
return buf.toString();
// 16位的加密
//return buf.toString().substring(8, 24);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
System.out.println(code("hello"));
}
}