如何从java.security.PublicKey创建AsymmetricKeyParameter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从java.security.PublicKey创建AsymmetricKeyParameter相关的知识,希望对你有一定的参考价值。

我试图从我的加密类中删除海绵城堡提供者并直接使用Spongy城堡光库(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);

上面的代码似乎和以前不一样。任何人都可以告诉我相当于原始代码我可以用spongycastle库重写而不使用Javax.Crypto库?

谢谢

答案

RSA PKCS#1加密是不确定的。这是另一种说法,PKCS#1在使用公共指数执行模幂运算之前用随机值填充明文消息。如果你得到相同的价值,那你就知道出了什么问题,不对。

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

以上是关于如何从java.security.PublicKey创建AsymmetricKeyParameter的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

如何从 Firebase 获取所有设备令牌?

如何直接从类调用从接口继承的方法?

如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个

如何从Mac从android studio中的fabric注销? [复制]

如何从设备中获取 PDF 文件以便能够从我的应用程序中上传?