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环境,遇到前几位字符相同,后面字符不同的字符串,遇到过,加密后的密码是一致
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异