类
package com.jsoncc.crowd.util;
import com.jsoncc.crowd.constant.CrowdConstant;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Author: JsonCC
* Date: 2021/4/28 17:57
* Email:896415482@qq.com
*/
public class CrowdUtil {
/**
* 对明文字符串进行md5加密
*
* @param source
* @return
*/
public static String md5(String source) {
// 1.判断source(明文)是否有效
if (source == null || source.length() == 0) {
// 2.如果不是有效的字符串抛出异常
throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALIDATE);
}
// 3.获取MessageDigest对象
String algorithm = "md5";
try {
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
// 4.获取明文字符串对应的字节数组
byte[] input = source.getBytes(StandardCharsets.UTF_8);
// 5.执行加密
byte[] output = messageDigest.digest(input);
// 6.创建BigInteger对象
int signum = 1;
BigInteger bigInteger = new BigInteger(signum, output);
// 7.按照16进制将bigInteger的值转换为字符串
int radix = 16;
String encoded = bigInteger.toString(radix).toUpperCase();
return encoded;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}
生成的常量类
package com.jsoncc.crowd.constant;
/**
* Author: JsonCC
* Date: 2021/4/28 18:06
* Email:896415482@qq.com
*/
public class CrowdConstant {
public static final String MESSAGE_STRING_INVALIDATE = "exception";
}
测试md5加密类
package com.jsoncc.crowd.test;
import com.jsoncc.crowd.util.CrowdUtil;
import org.junit.Test;
/**
* Author: JsonCC
* Date: 2021/4/28 19:48
* Email:896415482@qq.com
*/
public class StringTest {
/**
* md5算法的测试
*/
@Test
public void testMd5() {
String source = "123123";
String encoded = CrowdUtil.md5(source);
System.out.println(encoded);
}
}
输出结果
运行 StringTest 结果类
得出测试的 123123 为
注意
输出的类@Test用到了junit
用到的版本如下
验证
验证md5加密是否正确,可以使用该在线网站:点我跳转