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

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

https://img1.sycdn.imooc.com//climg/62d978d409f49a5f14400694.jpg

https://img1.sycdn.imooc.com//climg/62d978d4094f16a117270593.jpg

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的密码会报错

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学提供的代码中md5Digest方法第27行,调用的是md2Hex方法,而课程中老师使用的是md5Hex方法。两处使用的方法不一致,导致生成的结果不一致。建议同学将代码进行更改之后再尝试一下。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师