前言
md5加密是不可逆的
一、jdk实现md5加密
package com.example.baidu;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
public class M大JdkTest {
@Test
public void test() throws Exception {
String str = "银河系的极光";
// 定义编码
String algorithm = "MD5";
// 获取消息摘要算法对象
MessageDigest md = MessageDigest.getInstance(algorithm);
// 获取原始内容的字节数组
byte[] originalBytes = str.getBytes(StandardCharsets.UTF_8);
// 获取摘要结果
byte[] digestBytes = md.digest(originalBytes);
// 当originalBytes比较大的时候,循环进行update
/*md.update(originalBytes);
md.digest();*/
// 把每一个字节转换为16进制字节,最后再将它们拼接起来
String hexStr = convertBytes2HexStr(originalBytes);
System.out.printf("hexStr: " + hexStr);
}
private String convertBytes2HexStr(byte[] originalBytes) {
StringBuffer sb = new StringBuffer();
for (byte bt : originalBytes) {
// 获取b补码后的八位
String hex = Integer.toHexString(((int)bt)&0xff);
if (hex.length() == 1) {
hex = "0" + hex;
}
sb.append(hex);
}
return sb.toString();
}
}
原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/tech/java/277919.html