我需要一种在 Swift 中生成 RSA 非对称密钥对的方法。我不需要将它存储在钥匙串或任何东西中。我只需要生成一个密钥对并将两个密钥都推送到 String 变量中。
密钥确实需要与另一端的 PHP 兼容。我将使用对称加密来保护私钥并将其存储在手机上。我会将公钥发送到用 PHP 实现的 Web 服务,Web 服务会将公钥存储在数据库中。
该公钥稍后将被 Web 服务用于加密诸如一次性密码和其他指定给 IOS 应用程序的敏感值之类的值。我将为从 IOS 应用程序流向 Web 服务的小块数据实施类似的方案。
我能找到的用于在 Swift 中生成密钥对的唯一记录的 API 声明显示在 developer.apple.com 上:
func SecKeyGeneratePairAsync(_ parameters: CFDictionary!,
_ deliveryQueue: dispatch_queue_t!,
_ result: SecKeyGeneratePairBlock!)
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何使用它,但 XCode 不喜欢下划线,而且我不确定我实际上应该用它做什么或如何使用它。
即使 XCode 会接受它,我也不确定我将如何调用该函数以及传递它的值等。我在顶部包含了“import Security”,所以这不是问题。
这太难了,真是太可笑了。我想要做的就是生成一个非对称密钥对。
在 PHP 或 .NET 或 Java 或任何其他语言中执行此操作是小菜一碟,但我找不到任何关于 Swift 的明确文档。我必须为这个应用程序使用 Swift。我不想使用 OpenSSL,因为它已被弃用。
我使用 Swift 是因为我非常讨厌 Objective C。Swift 是我最终进入 IOS 开发的原因。
我不知道如何将 Objective C 类与 Swift 集成,如果有的话,我真的宁愿有一个纯 Swift 解决方案。如果没有,我会很感激有关如何集成 Objective C 解决方案并使其工作的一些指示。
上面的代码片段是Apple提供的唯一函数调用,自然是不完整的,没有意义,也不起作用。