现在我可以使用此tutorial中的方法加密文本。 (对不起,它只有中文,但我认为你可以通过它的代码片段理解帖子)。
使用没有密码的公钥加密。如何使用公共密钥WITH passphrase?
加密我的文本更新1:
我可以使用以下代码读取没有passpharse的公钥:
certificate = SecCertificateCreateWithData(kCFAllocatorDefault, ( __bridge CFDataRef)publicKeyFileContent);
if (certificate == nil) {
NSLog(@"Can not read certificate from pub.der");
return nil;
}
问题是 - 如何在iOS中读取带有passpharse的公钥?
更新2
服务器和iOS应用之间的通信使用https
除了https,后端和应用程序都有自己的公钥和私钥进行安全通信。
他们沟通的步骤:
App拥有来自服务器的公钥(带密码)
App生成公钥(带密码)和私钥(首次使用app时)
当app向服务器发送数据(带有3个参数的JSON)时,app会发送app生成的公共证书(JSON参数1)+ app生成的公钥密码(JSON参数2)+公共加密的消息来自服务器的密钥(JSON参数3)
服务器可以读取收到的消息(由服务器端私钥解密)
服务器将在收到JSON后发送响应消息。邮件由app
因此,从服务器到每个应用程序都建立了安全连接。并确保正确的个人应用程序不会收到不适合他们的消息。
答案 0 :(得分:0)
RSA加密是一种非对称加密算法。使用公钥加密时,只能使用关联的私钥解密。没有密码。
通常,数据加密使用AES等对称密钥加密与从PBKDF2使用密码/短语派生的密钥一起使用。
通常,在使用非对称加密时,文本将使用对称算法(例如使用随机一次性密钥的AES)进行加密。密钥将使用非对称算法加密,并且对称加密文本和非对称加密密钥都被发送到另一端。接收方使用私钥反转进程。
请注意,非对称加密速度很慢,要加密的数据仅限于密钥大小。这就是它通常仅用于加密密钥或非常有限的数据的原因。