【问题标题】:How to generate RSA public key .pem file from xcode?如何从 xcode 生成 RSA 公钥 .pem 文件?
【发布时间】:2017-06-29 13:35:15
【问题描述】:

我需要一个公钥来在我的 iOS 项目中使用模数和指数来解密 RSA 私钥加密的数据。所以有人请我如何使用 ModulusExponent 创建 Public key??

【问题讨论】:

  • 一般数据是用公钥加密的。使用私钥完成签名。
  • 嗨 Zaph,在我的场景中,我需要一个公钥来解密用私钥编码的服务器数据。所以请建议我如何在运行时使用模数和指数创建 RSA 公钥来解密数据?

标签: ios


【解决方案1】:

由于长度和令人困惑的问题,我将其作为答案。

也许对“私人”与“秘密”密钥以及非对称与对称密钥加密存在误解。

通常不使用 RSA 等非对称密钥加密来加密数据,主要原因有两个: 1. 数据大小限制为小于密钥大小,因此 2048 位密钥可以加密小于 256 字节。 2. 很慢。

一般用于加密对称密钥和签署数据。加密是用公钥完成的,解密是用私钥完成的。因此,许多人可以使用公钥来加密数据,而只有私钥的所有者才能解密数据。使用私钥进行签名,因此任何拥有公钥的人都可以进行验证。

AES 等非对称密钥加密用于加密数据,因为: 1. 数据大小不受限制。 2. 速度非常快。

在需要非对称密钥且大于非对称密钥的数据需要加密的情况下,使用混合加密。这是通过创建随机对称密钥并使用对称加密(例如 AES)加密数据来完成的,对称密钥使用非对称密钥加密(例如 RSA)进行加密。然后将非对称密钥和加密数据组合在一起。

【讨论】:

  • 您好 Zaph,感谢您的支持。我的有效负载大小为 128 字节(机密数据),使用 RSA 私钥加密,并且我有模数和指数。如何使用公钥解密此有效负载数据?
  • 您将无法准确描述您要完成的工作,因为似乎加密设计不正确,因为加密不是使用私钥完成的。如果问题是服务器和客户端之间传输的数据,HTTPS 是一般解决方案。
  • 感谢 Zaph 的支持!!
猜你喜欢
  • 2017-05-11
  • 2022-08-10
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多