rsa吧 关注:84贴子:248
  • 0回复贴,共1

RSA加密,同一段数据同一个私钥,开发工具和正式环境结果不一样

只看楼主收藏回复

问题描述:用的RSA加密,开发工具上和正式环境是同样的代码,JDK也是一样的,同样的数据源,同样的私钥,加密出来的结果不一样,开发工具上是对的,正式环境是错的
代码片段:
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Key privateK = keyFactory.generatePrivate(pkcs8KeySpec);
Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
后来发现,将开发环境上的 keyFactory.getAlgorithm() 值换成 RSA/ECB/NoPadding,然后得出的结果一直,我以为两边得出的 keyFactory.getAlgorithm() 不一样,打印才发现是一样的RSA,但是实际结果是,开发工具是RSA的结果(正确的),正式环境是RSA/ECB/NoPadding的结果(错误的),直到后来写死成 RSA/ECB/PKCS1Padding 两边才都正确
我查了一下,这个好像跟JDK的版本有关系,但是开发环境和正式环境都是1.7版本,小弟不理解的是,我代码都写死成RSA了也不行,非要写死成RSA/ECB/PKCS1Padding 才行。希望大哥们解惑,谢谢。


1楼2019-07-10 16:41回复