如何在 iOS 密钥生成中调整密钥派生迭代? [关闭]

Posted

技术标签:

【中文标题】如何在 iOS 密钥生成中调整密钥派生迭代? [关闭]【英文标题】:How to adjust Key Derivation Iterations on iOS Key generation? [closed] 【发布时间】:2017-06-20 08:09:36 【问题描述】:

我目前正在开发一个需要与安全系统通信的应用。我需要根据几个要求生成公钥和私钥。根据系统规范,密钥派生迭代需要设置为 1000,但我在 ios 上找不到任何方法。

谁能帮帮我?谢谢!

【问题讨论】:

你的问题太宽泛了。您不清楚您在哪个部分有困难。 【参考方案1】:

正如评论中所述,您的问题有点过于宽泛。我猜你问的是PBKDF2。

您可以使用 CommonCrypto 来做到这一点。我将它与 Objective-C 一起使用,它相对容易。我认为将它与 Swift 一起使用可能会有一些困难,但谷歌搜索有很多关于如何做到这一点的信息。

您将需要使用 CommonCrypto 函数 CCKeyDerivationPBKDF - link to docs。有一个 round 参数,我认为这是您正在寻找的。

这个question 也可能有帮助。

【讨论】:

会尝试你的答案。感谢您的回答,即使问题有点过于宽泛。一旦我确认这是必需的,就会接受它。 @user1945317 您可能还想检查CCCalibratePBKDF,它可以告诉您需要设置多少轮才能在几秒钟内实现所需的减速,因为它还取决于设备硬件(iPhone5 和 iPhone7 不同)。我不确定您的唯一要求是否是轮数,但通常需要处理时间而不是轮数。 谢谢!这足以再次继续工作。我正在使用 GitHub 上的 joeymeyer/PBKDF2-Wrapper 项目,以使其更易于使用。

以上是关于如何在 iOS 密钥生成中调整密钥派生迭代? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从 iOS 中的私钥派生的证书(Objective-C)

如何将 IV 和密钥派生到 crypto.createCipheriv 以进行解密?

哪个是密码版本5的方法密钥派生(MKD)

在 iOS 中使用 Keychain 存储的密钥生成 OpenSSL 证书签名请求

使用 PBKDF2 和 AES256 进行加密和解密 - 需要实际示例 - 如何获取派生密钥

仅当特定密钥对值与可迭代匹配时,才在 JSON 对象中获取多个 JSON 密钥对值