我从后端获得了一些解密一些数据的Python代码。在我这边,Android应用程序,我还需要解密它。
以下是我认为最相关的Python代码片段。
cipher = PKCS1_OAEP.new(privkey)
这是它来自的模块
from Crypto.Cipher import PKCS1_v1_5
from Crypto.Cipher import PKCS1_OAEP
查看PKCS1_OAEP.new
的文档
https://www.dlitz.net/software/pycrypto/api/2.6/Crypto.Cipher.PKCS1_OAEP-module.html
然后与JavaDoc for Cipher进行比较 https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#Cipher
我推断这个Python算法可以使用Java Cipher类表示如下(注意代码在Kotlin中)
val cipher = Cipher.getInstance("RSA/NONE/OAEPWithSHA1AndMGF1Padding", "BC")
请注意,BC是提供者。我发现BouncyCastle很受欢迎,并且包含在Android框架中
那么错误是什么?
当挑战的答案错误时,后端会给我404。 当我执行Python代码(命中相同的端点)时,它可以工作。 就POST请求而言,我对两者进行了比较,并且我以正确的方式发送它。
我想知道什么
我使用正确的算法吗?我试图在转移到另一个
之前系统地解决潜在的问题请注意,我也试过
val cipher = Cipher.getInstance("RSA/NONE/OAEPPadding", "BC")