java - .rsaEncryptionOAEPSHA256算法在iOS上与Java的兼容性

我正在尝试从 iOS 应用程序与 Java 后端进行通信。使用 .rsaEncryptionOAEPSHA256SecKeyCreateEncryptedData 中的算法对于encryption ,后端显示以下堆栈跟踪:

Caused by: java.lang.SecurityException: Exception thrown while invoking doFinal(byte[]).
    at  ... 101 common frames omitted
Caused by: javax.crypto.BadPaddingException: Decryption error
    at java.base/sun.security.rsa.RSAPadding.unpadOAEP(RSAPadding.java:497)
    at java.base/sun.security.rsa.RSAPadding.unpad(RSAPadding.java:292)
    at java.base/com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:366)
    at java.base/com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:392)
    at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2207)
    ... 103 common frames omitted

Java 后端正在使用 RSA/ECB/OAEPWithSHA-256AndMGF1Padding算法来自 SunJCE提供商。此提供商使用 SHA-1对于MGF1 摘要。但是 iOS 的默认设置是使用 SHA-256 .

  • 如何在 iOS 代码中更改它以使其兼容?

注意:需要说明的是,完全相同的交互目前在 .rsaEncryptionPKCS1 上运行良好在后端使用 RSA/ECB/PKCS1Padding 的 iOS 上在 Java 中。

最佳答案

面对同样的问题,根据我的研究和实验,在 iOS 上支持 RSA/ECB/OAEPWithSHA-256AndMGF1Padding 几乎是不可能的。

类似问题:Encrypt RSA/ECB/OAEPWithSHA-256AndMGF1Padding Swift

但这只解决了算法问题,没有解决填充问题。

https://stackoverflow.com/questions/63727889/

相关文章:

stripe-payments - Stripe Checkout session 后如何在发票上获

css - 关键帧动画问题

firebase - 如何在 flutter 中捕获 StorageException

python - 使用最佳学习率导致随机猜测的准确性

tensorflow - 如何将 tf.data.Dataset 与 kedro 一起使用?

authentication - 如何在 ReactJS 中实现登录亚马逊?

python - 如何一次对每一行进行不同的 tensorflow 张量切片?

json - 使用 JSON Body on Rule 调用 REST API Business C

ios - iPhone 上的 Safari 是否支持为 <input type =“file

android - 如何处理 In-App Billing Library 中的多个用户? (最佳实