我是这个主题的新手,对于在iOS应用程序中实现公钥/私钥加密的任何帮助/指导,我们将不胜感激。看起来安全框架可以满足我的需要,但我想确保获得最佳建议。
基本上,用户A和用户B要安全地通信。用户A将具有用户B的公共密钥,并使用该公共密钥来加密消息。然后,用户B获取消息并使用私钥对其解密。
所以我想问题是:
生成公钥/私钥的最佳方法是什么。那会是OpenSSL吗?
如果是OpenSSL,是否可以在iOS设备中执行此操作,还是我需要依靠服务器/外部生成的私钥/公钥?
如果唯一的选择是在iOS设备外部生成私钥/公钥,那么这是否使iOS设备通过HTTP请求密钥文件(就像正常下载一样)很简单?
当最终用户拥有公用密钥和私有密钥时,是否有一个简单的教程/示例显示了如何使用RSA加密和解密消息(RSA是btw选项)吗?
要生成密钥,SecKeyGeneratePair()
请参见SO Question示例代码。
要获取用于传输的密钥,SecItemCopyMatching ()
请参见SO Answer(示例代码)。
有关执行RSA加密的示例代码,请参见此答案
笔记:
私钥/公钥在同一台计算机上一起生成。可以轻松,公开地共享公共密钥,但是问题在于验证公共密钥。https是一种传输密钥的可行方法。
通常,数据不会使用公共/私钥进行加密/解密。这有两个原因:速度很慢,数据大小有限(受密钥大小限制)。通常,使用对称方法(例如AES和随机密钥)对数据进行加密,然后使用公钥对密钥进行加密,然后使用私钥进行发送和解密。然后,该密钥用于解密AES加密的实际数据。
Apple不再提供OpenSSL,您需要获取所需版本的源代码并自行构建。声明的不提供OpenSSL的原因是次要版本不向后兼容,并且在Apple提供当前版本并且开发人员使用不兼容的较早版本的应用程序时造成了问题。
对于教程:Google。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句