当前位置: 首页 > 知识库问答 >
问题:

iOS中RSA解密失败

鲁烨
2023-03-14
status = SecKeyDecrypt(privateKey,
                       PADDING,
                       cipherBuffer,
                       cipherBufferSize,
                       plainBuffer,
                       &plainBufferSize
                       );

共有1个答案

苏华藏
2023-03-14

我发现问题了。在加密结束时,将密码缓冲区转换为NSData时,在下面的代码中

NSMutableData *data=[[NSMutableData alloc] init];
[data appendBytes:cipherBuffer length:strlen( (char*)cipherBuffer ) + 1];

长度不正确。它应该是密码缓冲区的大小,与密钥块大小相同。所以在将其更改为

NSData *data = [NSData dataWithBytes:cipherBuffer length:cipherBufferSize];

解密现在起作用了。

 类似资料:
  • 问题内容: 我有一个从Java服务器发送的公钥。在我解码并去除ASN.1标头之前,base64编码的字符串匹配。我使用将公钥存储在钥匙串中。 因此,我尝试使用公共密钥对数据进行加密,并使用Java中的私有密钥对其进行解密。我在iOS端和Java端使用。 我正在加密的是对称AES密钥,该密钥对我的实际数据进行加密,因此密钥长度为16个字节。当简单地对密钥进行base64编码时,一切正常,因此我知道此

  • 在大多数情况下,这一过程取得了成功。但RSACryptoServiceProvider将引发一个异常: 错误似乎是随机出现的。 下面是一些jsencrypt可以加密和解密,但C#解密失败的例子。每个数组的前两个元素是源数据和JSEncrypt解密的数据。每个数组的最后一个元素是C#无法解密的加密数据。 下面是解密数据的C#代码示例: 下面是加密数据的js代码示例:

  • 本章是前一章的延续,我们使用RSA算法逐步实现加密,并详细讨论它。 用于解密密文的函数如下 - def decrypt(ciphertext, priv_key): cipher = PKCS1_OAEP.new(priv_key) return cipher.decrypt(ciphertext) 对于公钥加密或非对称密钥加密,重要的是保持两个重要的功能,即Authenticati

  • 我正在尝试使用在我的设备上生成的RSA密钥解密我的android应用程序中的字符串。加密由php服务完成,使用我的应用程序提供的公共rsa密钥。我的问题是解密,解密失败了。 我正在做以下工作: 在用base64.encode(pubkey.getencoded())和私钥进行“base64”编码后,这两个密钥(公共和私有)都保存到文件中。->好 当我调用我的webservice时,我在post变量

  • 我当前在解密服务器上的RSA加密数据时遇到了问题,服务器使用Node.js并使用node-rsa库进行加密/解密。 在我的Android客户端上没有任何问题地接收到公钥,但是当尝试解密数据时,我得到了以下异常: 这就是我在客户端上生成公钥的方式 以下是客户端的加密: