我正在尝试从ios应用程序到java后端进行通信。当使用 .rsaEncryptionOAEPSHA256
算法 SecKeyCreateEncryptedData
对于加密,后端显示以下堆栈跟踪:
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
在 java 。
暂无答案!
目前还没有任何答案,快来回答吧!