c# - 使用 seckeygeneratepair 中的公钥进行加密

标签 c# ios swift encryption public-key-encryption

我们的 iOS 开发人员使用以下文档生成了私钥/公钥。其他细节包括使用 RSA 2048 和填充为 PKCS1。

https://developer.apple.com/documentation/security/1395339-seckeygeneratepair?language=objc

我主要遇到过使用 Windows 商店中的证书进行基于证书的加密,我似乎无法将其公钥放入我之前遇到的示例中。有人尝试过这样的事情吗?

  1. 该应用会生成公钥私钥对并向我提供公钥。
  2. 在服务器上,我使用公钥加密消息。
  3. 在应用中,消息是使用私钥解密的。

以下是我读过的一些引用资料,但似乎都不适合此内容。

https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsacryptoserviceprovider?view=netframework-4.7.2 https://codereview.stackexchange.com/questions/92761/very-simple-asymmetric-rsa-encryption-in-c

最佳答案

经过一些尝试和错误,我们从中吸取了教训。

  • iOS 应按以下格式返回有效的 RSA 公钥。以前,生成的 key 不是标准格式,因此仅适用于 iOS 并对其进行加密和解密。这里还有一行来验证它。

    openssl rsa -in example.pem -text -pubin -RSAPublicKey_in

    -----开始 RSA 公钥----- MIIBCgKCAQEAz1zfbybUt5jZX5P6ymy+g04wj3iTYCV8eGbkFyqFNsfN8Lnk6x4x zstfnpE6asV6NkBecQnT1a9X6AVxA4Mxq4CeysR10TRr8HGczQGKl7R3Nbvvmgw+ jX8LZGxsQTO6qYWhMAtOPFfsMW9iy3AsDE7OIYfya6y/l919ExbgPzJ+0nLdiBmd bmmzOQ1PaKt3OcxG6qZyBoixRTTOm4UDCLDzYdjz5dS1rbvb7pD15TpkZBkuMRm5 QDv+xhKcz1UFGQP7ssZS++ZoQlF2CZJuLz8R1uUYg4xQnF0r1IBBrlVtKnblgMcA ZykNweGwrdPaWF3PeZmbvG+/m+Kt7/4BJwIDAQAB -----结束 RSA 公钥-----

  • 在 .NET 方面,我能够加密文本,但我需要使用充气城堡来做到这一点。这是示例代码。

    公共(public)字符串加密(字符串纯文本,字符串公钥) { UTF8Encoding ByteConverter = new UTF8Encoding(); 使用 (RSACryptoServiceProvider csp = new RSACryptoServiceProvider()) { PemReader 阅读器 = new PemReader(new StringReader(publicKey)); 对象 kp = reader.ReadObject(); csp.ImportParameters(DotNetUtilities.ToRSAParameters((kp as RsaKeyParameters))); var cryptoData = csp.Encrypt(data: ByteConverter.GetBytes(plainText), 填充: RSAEncryptionPadding.Pkcs1); 返回Convert.ToBase64String(加密数据); } }

关于c# - 使用 seckeygeneratepair 中的公钥进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51978927/

相关文章:

C# - 在图像上标记像素

c# - 在 EF4 Code-First 中按基本类型查询

c# - 同步 Web Api 和响应时间取决于线程和请求计数

ios - 将 UIToolBar 添加到所有键盘(快速)

trigonometry - SWIFT 触发函数

ios - Firebase Auth 方法 createUser 未显示正确的参数

c# - 在嵌套循环中,Parallel.For 应该用在外循环还是内循环?

javascript - 预填充 WebView 文本字段

swift - xcode7 上出现错误。 view.layer.renderInContext(上下文!)

iphone - 将 HTML 转换为 PDF 时出现额外空白页