场景:
都是在IDEA中,一个是使用main方法直接加密。一个是使用IDEA导入的tomcat容器。
对同一个字符串加密(含中文字符):
在IDEA中使用main方法进行RSA加密得到的HOWNQWONSOP;
而使用IDEA中的tomcat进行加密时得到的字符串是:YI2N24P2JLXO3O;
特意检查了IDEA的右下角的编码是UTF-8没什么问题。
原因:
其实原因很简单,但是容易忽视。
在IDEA设置的默认编码是UTF-8,所以main方法执行时使用的utf-8编码。
但是在IDEA中的tomcat中运行时,使用的是tomcat的默认编码,即gbk。导致这里面的中文字节数就不一样了,所以导致加密结果不一样
解决:
设置tomcat编码
-Dfile.encoding=UTF-8