我这里加盐获取的值为什么和老师的不一样?


Test类
package com.imooc.oa.utils;
import org.junit.Test;
import static org.junit.Assert.*;
public class Md5UtilsTest {
@Test
public void md5Digest() {
System.out.println(Md5Utils.md5Digest("123456789"));
}
@Test
public void md5Digest2() {
System.out.println(Md5Utils.md5Digest("123456", 888));
}
}Md5类
package com.imooc.oa.utils;
import org.apache.commons.codec.digest.DigestUtils;
import java.nio.charset.StandardCharsets;
public class Md5Utils {
public static String md5Digest(String source) {
return DigestUtils.md2Hex(source);
}
/**
* 使用加盐,使得密码有保护性
* @param source 密码
* @param salt 盐值
* @return 加密后的字符串
*/
public static String md5Digest(String source, Integer salt) {
// 先将字符串转换为字节
char[] chars = source.toCharArray();
for (int i = 0; i < chars.length; i++) {
// 加上盐值
chars[i] = (char) (chars[i] + salt);
}
String target = new String(chars);
System.out.println(target);
String md5 = DigestUtils.md2Hex(target);
return md5;
}
}这个错误导致下一章节的获取m8的密码会报错
10
收起
正在回答
1回答
同学你好,同学提供的代码中md5Digest方法第27行,调用的是md2Hex方法,而课程中老师使用的是md5Hex方法。两处使用的方法不一致,导致生成的结果不一致。建议同学将代码进行更改之后再尝试一下。
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星