今天学到了MD5加密和盐值。为用户密码加密的功能。写了一个工具类,也在工具类中写了main方法去测试,并得到一个MD5摘要,放入了数据库中当加密的密码。都写好了,但总提示密码错误。

在工具类中debug得到的结果如下图
工具类里debug
在tomcat里调试,得到的结果如下图
tomcat里debug
为什么同样的工具类,同样的原始密码,同样的盐值,在工具类main方法里测试和在tomca里debug的MD5结果不一样呢?找了半个小时都没有找到原因。
没办法只能求助。
结论是:本地工具类中运行的编码是UTF-8,而tomcat中的编码可能是ISO-8859-1或其他编码。由于编码不一致导致了最终得到的MD5摘要不一致。如果是相同环境下生成的MD5,就能一致。
解决方案是:将编码统一。
每次遇到问题被解决后都感觉怎么能出这种错。好吧,这个也算是遇到一个稍微高级一点的问题了。O(∩_∩)O哈哈~


还没有评论,来说两句吧...