SpringMd5加密问题

问题

SpringMd5加密,如果未指定编码,可能会导致未知问题

重现过程

环境

windows

代码


public class Test001 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String testStr ="四川省";
        String md5PasswordDefault = DigestUtils.md5DigestAsHex(testStr.getBytes());
        String md5PasswordUtf8 = DigestUtils.md5DigestAsHex(testStr.getBytes("utf-8"));
        String md5PasswordGb2312 = DigestUtils.md5DigestAsHex(testStr.getBytes("gb2312"));
        System.out.println("默认:"+md5PasswordDefault);
        System.out.println("utf-8:"+md5PasswordUtf8);
        System.out.println("gb2312:"+md5PasswordGb2312);
    }
}

输出结果


默认:cbbbd3243b7a20342273d0d3ab9f838f
utf-8:cbbbd3243b7a20342273d0d3ab9f838f
gb2312:f2806794c8c61e82969d2f2d345fc7b1

结论

  • 不同的编码,会影响加密结果
  • 目前windows环境默认编码是utf-8编码

思考

  • 1.windows环境默认是utf-8
  • 2.linux环境或其他容器环境,可能默认就不是utf-8,可能导致其他问题
  • 3.我在容器中其实就是linux环境,遇到前几位字符相同,后面字符不同的字符串,遇到过,加密后的密码是一致
posted @ 2023-11-19 18:29  落子不悔  阅读(31)  评论(0)    收藏  举报