前言
最近在写一个Javaweb,有一个要对密码进行MD5加密的地方,调用的是DigestUtils.md5hex()。
问题
发现同样的String会生成不同的结果,也有不同的String却生成同样的结果。
解决过程
后来问度娘,发现可能跟字符编码有关,调用Charset.defaultCharset().name()发现,在写的service里的编码是GBK,而在别的地方随便创建的类编码却是UTF-8。
看别人的文章说Charset.defaultCharset().name()得到的默认编码与IDE无关,而是跟系统有关。于是添加环境变量
问题得以解决。
结论
使用DigestUtils.md5hex()的时候要注意环境的字符编码。