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环境,遇到前几位字符相同,后面字符不同的字符串,遇到过,加密后的密码是一致

浙公网安备 33010602011771号