Java MD5加密算法实现及单元测试
Java MD5加密算法实现及单元测试
public static String MD5encode(String source) {
if (StringUtils.isBlank(source)) {
return null;
}
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException ignored) {
}
byte[] encode = messageDigest.digest(source.getBytes());
StringBuilder hexString = new StringBuilder();
for (byte anEncode : encode) {
String hex = Integer.toHexString(0xff & anEncode);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
单元测试方法
@Test
public void testMD5encode() {
String source = 'password123';
String expected = '482c811da5d5b4bc6d497ffa98491e38';
String result = MD5encode(source);
assertEquals(expected, result);
source = 'Hello World!';
expected = 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9';
result = MD5encode(source);
assertEquals(expected, result);
source = '';
expected = null;
result = MD5encode(source);
assertEquals(expected, result);
}
代码说明:
MD5encode方法接收一个字符串作为输入,并返回其MD5加密后的十六进制字符串。- 该方法使用
MessageDigest类来进行MD5加密,并使用StringBuilder类来拼接十六进制字符串。 - 单元测试方法对三种不同的输入字符串进行了测试,包括正常字符串、包含特殊字符的字符串和空字符串。
- 测试方法使用
assertEquals方法来验证结果是否与预期值一致。
结论:
该代码实现了一个简单的MD5加密算法,并通过单元测试方法进行了验证。该代码易于理解和使用,可以方便地用于需要MD5加密的场景。
原文地址: https://www.cveoy.top/t/topic/nsZI 著作权归作者所有。请勿转载和采集!