【问题标题】:Encrypting using publicKey from seckeygeneratepair使用来自 seckeygeneratepair 的 publicKey 进行加密
【发布时间】:2019-01-29 10:15:36
【问题描述】:

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

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

我经常遇到使用来自 Windows 商店的证书的基于证书的加密,我似乎无法将他们的公钥放入我之前遇到的示例中。有人试过这样的吗?

  1. 该应用会生成一个公钥对并为我提供公钥。
  2. 在服务器上,我使用公钥加密了一条消息。
  3. 在应用程序上,消息使用私钥解密。

这里有一些我读过的参考资料,但似乎没有一个适合这个。

https://docs.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

【问题讨论】:

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


    【解决方案1】:

    经过一些试验和错误,这里是从中吸取的教训。

    • iOS 应返回以下格式的有效 RSA 公钥。以前,生成的密钥不是标准格式,所以只有 iOS 和加密和解密它。这里还有一行来验证它。

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

      -----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEAz1zfbybUt5jZX5P6ymy+g04wj3iTYCV8eGbkFyqFNsfN8Lnk6x4x zstfnpE6asV6NkBecQnT1a9X6AVxA4Mxq4CeysR10TRr8HGczQGKl7R3Nbvvmgw+ jX8LZGxsQTO6qYWhMAtOPFfsMW9iy3AsDE7OIYfya6y/l919ExbgPzJ+0nLdiBmd bmmzOQ1PaKt3OcxG6qZyBoixRTTOm4UDCLDzYdjz5dS1rbvb7pD15TpkZBkuMRm5 QDv+xhKcz1UFGQP7ssZS++ZoQlF2CZJuLz8R1uUYg4xQnF0r1IBBrlVtKnblgMcA ZykNweGwrdPaWF3PeZmbvG+/m+Kt7/4BJwIDAQAB -----END RSA PUBLIC KEY-----

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

      public string Encrypt(string plainText, string publicKey) { UTF8Encoding ByteConverter = new UTF8Encoding(); using (RSACryptoServiceProvider csp = new RSACryptoServiceProvider()) { PemReader reader = new PemReader(new StringReader(publicKey)); object kp = reader.ReadObject(); csp.ImportParameters(DotNetUtilities.ToRSAParameters((kp as RsaKeyParameters))); var encryptedData = csp.Encrypt(data: ByteConverter.GetBytes(plainText), padding: RSAEncryptionPadding.Pkcs1); return Convert.ToBase64String(encryptedData); } }

    【讨论】:

      猜你喜欢
      • 2012-10-25
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多