0

我正在尝试从我的密码学课程中删除海绵城堡提供程序并直接使用海绵城堡灯光库(maven:com.madgag:sc-light-jdk15on:1.47.0.3)我在更改 RSA 加密逻辑时遇到问题,下面是代码:

原始代码:

final PublicKey pKey = KeyFactory.getInstance("RSA", "SC").generatePublic(new X509EncodedKeySpec(publicKey));
final Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

修改代码:

AsymmetricKeyParameter asypublicKey = PublicKeyFactory.createKey(publicKey);
org.spongycastle.crypto.encodings.PKCS1Encoding e = new org.spongycastle.crypto.encodings.PKCS1Encoding(new RSAEngine());
e.init(true, asypublicKey);

上面的代码似乎和以前不一样了。谁能告诉我在不使用 Javax.Crypto 库的情况下我可以用 spongycastle 库重写的原始代码的等价物吗?

谢谢

4

1 回答 1

1

RSA PKCS#1 加密是不确定的。这是另一种说法,PKCS#1 在使用公共指数执行模幂运算之前用随机值填充纯文本消息。如果您得到相同的值,那么您就知道有些地方是错误的,而不是正确的。

要测试您的代码,您只需解密消息即可。如果它成功了,那么你就知道密文是按照它应该的方式生成的。

于 2018-03-01T08:46:07.050 回答