RSA iPhone 公钥
我有一个用 JAVA 生成的公钥。 我想使用这个密钥并使用 RSA 加密数据并将其发送到服务器。 如何使用 iPhone SDK 做到这一点?
谢谢
I have a Public Key generated in JAVA.
I want to use this key and crypt the data using RSA and send it to the server.
How can I do that using the iPhone SDK?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不幸的是,iOS 没有公共 API 来处理原始 RSA 密钥。
您可以做两件事:
1)不要为您的应用程序提供公钥,而是为您的应用程序提供证书。您可以使用
SecCertificateCreateWithData
导入证书。然后使用 SecTrustCreateWithCertificates 创建信任。一旦获得信任,您就可以使用 SecTrustCopyPublicKey 提取公钥。2) 另一种选择是在您的项目中包含 OpenSSL。它拥有您需要的所有 API,您可以通过 google 搜索有关如何使用 RSA 密钥的示例代码。这可能是更简单的解决方案。
我已经提供了一个脚本来轻松地从源代码构建 OpenSSL。您可以从以下位置获取它:
http://github.com/st3fan/ios-openssl
Unfortunately, iOS has no public APIs to deal with raw RSA keys.
There are two things you can do:
1) Instead of giving your app a Public Key, give your app a certificate instead. You can import the certificate with
SecCertificateCreateWithData
. Then create a trust withSecTrustCreateWithCertificates
. Once you have the trust, you can extract the public key withSecTrustCopyPublicKey
.2) The other option is to include OpenSSL in your project. It has all the APIs you need, you can google for example code on how to work with RSA keys. This might be the simpler solution.
I have made available a script to easily build OpenSSL from source. You can grab it from:
http://github.com/st3fan/ios-openssl
如果您的公钥采用模/指数形式,这个问题可能会有所帮助:将 XML Dsig 格式转换为 DER ASN.1 公钥
我想出了如何将模数和指数二进制编码为
SecKeyWrapper
类的 DER ASN.1 格式Apple 的 CryptoExercise 项目用于导入外部密钥。If your public key is in modulus/exponent form, this question may help: Convert XML Dsig format to DER ASN.1 public key
I figured out how to binary-encode the modulus and exponent into the DER ASN.1 format that the
SecKeyWrapper
class of Apple's CryptoExercise project uses to import an external key.