我这里加盐获取的值为什么和老师的不一样?
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方法。两处使用的方法不一致,导致生成的结果不一致。建议同学将代码进行更改之后再尝试一下。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星