由于jvm编码方式未指定导致解密失败

在一个项目中遇到了一个奇怪的现象,对于一个加密字符串,在Linux环境中通过Tomcat启动能够解密成功,在Windows环境中,如果通过Eclipse启动项目就可以解密成功,通过Tomcat直接启动项目就解密失败。

在Linux环境中,采用rsa算法加密的信息,在Linux环境中,可以成功解密验证。

在Windows环境中,如果通过Eclipse启动项目就可以解密成功,直接启动Tomcat就无法解密成功。

查找问题的方法首先通过调用堆栈的方式,确认了两个环境中所调用的方法对应的Jar包以及代码位置是完全一样的,确认了没有因为Jar包不一致而导致的错误。
通过jdk中自带的工具jconsole.exe(jvisualvm.exe)分别连接到解密成功的实例和解密失败的实例,对比jvm运行环境和参数。

原因是:Windows环境下,默认编码为GBK,通过Eclipse启动项目时,参数中设置了JVM编码,通过Tomcat启动时,没有指定编码类型,导致解密验证失败。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值