【问题标题】:RSA Encryption using public key使用公钥的 RSA 加密
【发布时间】:2011-11-10 11:03:08
【问题描述】:

我正在编写 iOS 应用程序。服务器将 RSA 公钥发送给应用程序。现在应用程序必须使用 RSA 算法加密一些信息

请给我一些参考。 谢谢

【问题讨论】:

标签: ios encryption rsa


【解决方案1】:

iOS 没有专门针对 RSA 的 API,但有一些关于证书的 API。您可以使用这些 API 通过 RSA 加密您的数据。

首先,您必须使用 openssl 生成您的 RSA 私钥和公钥。最重要的是必须对公钥进行签名。这是生成密钥的说明。

openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650

但是,如果您已经有私钥(.pem 文件),则可以按照说明进行操作:

openssl req -new -out cert.csr -key private_key.pem
openssl x509 -req -in cert.csr -out public_key.der -outform der -signkey private_key.pem -days 3650

您可以通过在 xcode 中打开 public_key.der 来检查它。

当您获得正确的 public_key.der 文件后,您可以查看 RSA.h 和 RSA.m here。对不起,我没有时间再用英语重写这篇文章了。

【讨论】:

  • 完美,谢谢!您是否有 openssl 代码来检索使用这些密钥加密的信息?
  • 您好,您告诉过要使用证书生成密钥,但我有 JAVA 开发人员提供的公钥,所以我想使用该密钥解密消息...那我该怎么做?
  • 我想你的密钥是一个字符串。抱歉,我不知道如何将字符串键转换为文件。
【解决方案2】:

这个Pod封装了加密:https://github.com/xjunior/XRSA

【讨论】:

    【解决方案3】:

    我对 iOS 了解不多,但 Certificate, Key, and Trust Services Reference 似乎是您需要的。看来SecKeyEncrypt 会在某个时候被您使用。

    【讨论】:

    • 是的,要使用这个 API,我需要 RSA public ey 的 SecKeyRef,我有 NSSTring。我无法获得它的 SecKeyRef。我正在使用 iOS 4.2
    • @macdev30,我正在努力解决同样的问题:使用 NSString RSA 公钥加密。你解决了吗?
    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 2011-11-07
    • 2013-05-07
    • 2014-01-07
    • 2013-06-08
    • 2011-08-16
    • 2016-08-30
    相关资源
    最近更新 更多