2011-09-05 208 views
6

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

请给我一些参考。 谢谢

+1

只看如何使用RSA加密此问题:http://stackoverflow.com/questions/4211484/send-rsa-public-key-to-iphone-and -use-it-to-encrypt –

+0

看到这个问题和答案:http://stackoverflow.com/questions/28291609/encryption-with-rsa-public-key-on-ios/28291683#28291683 – ideawu

回答

0

我不太了解iOS,但Certificate, Key, and Trust Services Reference似乎是你所需要的。看起来SecKeyEncrypt将在某个时候被你使用。

+2

是的,要使用此API,我需要RSA public ey的SecKeyRef,我有NSSTring。我无法得到它的SecKeyRef。我正在使用iOS 4.2 – macdev30

+0

@ macdev30,我正在努力解决同样的问题:使用NSString RSA公钥进行加密。你有没有设法解决这个问题? – juanignaciosl

4

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。对不起,我没有时间再次用英语重写这篇文章。

+1

完美,谢谢! 你有openssl代码来检索用这些密钥加密的信息吗? – xlarsx

+0

你好,你告诉用证书生成密钥,但我有JAVA开发人员提供的公钥,所以我想使用该密钥解密消息...所以我该怎么做? – Apple

+0

我想你的钥匙是一个字符串。对不起,我不知道如何将字符串键转换为文件。 – zsxwing