- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 OpenSSL 来加密和解密 CMS_envolped 数据的有效负载,但我想使用带有 OAEP 填充(而不是 PKCS 1.5 填充)的 AES256 密码。当我使用 PKCS1.5 填充进行加密时我很好,并且可以解密,但是当我加密并使用 OAEP 填充时我无法解密。使用 PKCS7_decrypt 解密时如何设置填充类型?
docs只谈论不适用于填充的单个标志。我应该使用不同的 OpenSSL 解密方法来进行支持 OAEP 的解密吗?我还没有找到关于它的任何文档,但不可否认我不是 OpenSSL 专家。
guard PKCS7_decrypt(p7, privateKey, x509Cert, decryptedData, 0) == 1 else {
throw OpenSSLTests.decryptException
}
...
这无关紧要,但我在 iOS 客户端上使用 Swift 中的 OpenSSL。
最佳答案
终于找到了答案。
文档在任何地方都没有提到 OAEP 填充,但似乎 OpenSSL 中的 PKCS7_decrypt
函数不支持 OAEP 填充。据我所知,密码和填充都是在尝试解密时自动检测到的。
我尝试在 OpenSSL 中使用 CMS_decrypt
函数,它也没有指定填充的标志,并且能够很好地解密带有 OAEP 填充的 AES256
密码。
...
//nil would represent failure
guard let cms = d2i_CMS_bio(encryptedDataBIO, nil) else {
throw OpenSSLTestErrors.failedToLoadCMS
}
//1 indicates success
guard CMS_decrypt(cms, key, x509Cert, nil, decryptedData, 0) == 1 else {
throw OpenSSLTestErrors.failedToDecrypt
}
CMS_decrypt 的文档位于 here
我希望有更精通 OpenSSL 的人来解释为什么 PKCS7_decrypt
函数不起作用,而 CMS_decrypt
对使用 OAEP 填充加密的项目有效。 (或者为什么 PKCS7_decrypt
函数成功使用 PKCS1.5 填充)
我也没有看到您可以在 OpenSSL 的 CMS_encrypt 函数的哪个位置指定您的填充。默认情况下它使用 PKCS1.5
然后我使用解码器检查加密数据。我假设也有一种方法可以设置它,因为我能够解密使用另一个允许指定填充的库加密的内容。
关于swift - 如何使用 OpenSSL 为 PKCS7_decrypt 函数设置填充(OAEP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56941480/
很简单的问题。 RSA-OAEP 和 RSAES-OAEP 之间有什么区别? 一样吗??? 我可以使用 RSAES-OAEP 算法从加密数据中使用 RSA-OAEP 函数解密吗 最佳答案 是的。 他们
在深入了解细节之前,我要完成的高级任务是用 JavaScript 加密一些数据,将其发送到 Web 服务器,然后用 C# 解密加密的数据。我遇到问题的部分是用 C# 解密数据。 我正在像这样用 Jav
这个问题在这里已经有了答案: RSA Encryption Problem [Size of payload data] (2 个答案) 关闭 6 年前。 我正在尝试使用 SubtleCrypto
使用 RSACryptoServiceProvider.Decrypt 解密文本时,出现错误: Error occurred while decoding OAEP padding. 这是我的代码:
我目前正在研究一个类,该类使用 RSACryptoServiceProvider 执行主 key 加密和解密操作,使用智能卡的 X509 证书加密随机生成的加密 key 来加密大量文本。但是,当我将
我使用以下命令生成了对称 openssl rand 32 > test.key 它是使用我的公钥加密的,如下命令所示。它使用OAEP填充模式。 openssl pkeyutl -pkeyopt rsa
从我的观察可以看出,苹果安全框架中SecKeyEncrypt方法的各种填充值不支持SHA512哈希摘要的OAEP填充。实际上,我似乎无法确定SecKeyEncrypt方法是否在CBC过程中对每个块进行
我正在尝试使用描述为 here 的导出 key 来访问公钥。 。我有以下代码: window.crypto.subtle.generateKey( {
我正在使用 Web Crypto,更具体地说是这些示例:https://github.com/diafygi/webcrypto-examples/#rsa-oaep 我的主要目标是用我的公钥加密一个
我正在生成一个许可证 key 负载,该负载使用私钥通过 RSA 加密,然后使用公钥对其进行解密,以便在我面向用户的软件中使用许可证负载。我正在加密而不是签名,所以我只需要向我的用户提供一个字符串,而不
我在 phpseclib 中使用 Cipher.getInstance("RSA/ECB/OAEPWITHSHA-512ANDMGF1PADDING") 和 setEncryptionMode(CRY
我无法使用加密模块解密使用 RSA OAEP sha512 加密的字符串。它给了我 oaep 解码错误。 我正在使用 NodeJS 和加密模块,我已经尝试使用这些 key 加密和解密示例文本,但我无法
我正在尝试使用 Java 实现 RSA-OAEP 加密。我知道这需要一个默认为空字符串的标签。如何更改标签的值并使用内置类提供我选择的值? 最佳答案 正如我在评论中建议的,您需要使用 PSource.
我有一个带有私钥的证书存储在 Windows 证书库中。如何使用此 key 解密使用 OAEP 填充的消息?我可以使用 BouncycaSTLe 提供程序和 pfx 文件(PKCS12 keystor
我有以下代码来测试 WebCrypto API。它适用于 Firefox 和 Chrome,我正在尝试使其适用于 Safari。 function ab2str(buf) { retur
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
我正在 Java/Android 中实现加密代码以匹配 iOS 加密。在 iOS 中,使用以下填充方案使用 RSA 进行加密:PKCS1-OAEP 但是,当我尝试使用 PKCS1-OAEP 创建密码时
我正在使用 OpenSSL 来加密和解密 CMS_envolped 数据的有效负载,但我想使用带有 OAEP 填充(而不是 PKCS 1.5 填充)的 AES256 密码。当我使用 PKCS1.5 填
我正在尝试调试一个简单的 openssl 程序,但无法完全理解 openssl 对“oaep 解码错误”的含义。我已经将我的程序缩减为这个,测试,一个: #include #include #in
Android客户端加密报文,java代码 Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING"); b
我是一名优秀的程序员,十分优秀!