【问题标题】:What can I do to store password safely in swift?我该怎么做才能快速安全地存储密码?
【发布时间】:2016-11-10 05:39:56
【问题描述】:

我正在构建一个 swift 应用程序并拥有用户帐户。我需要安全地保存他们的信息(密码),我已经读过使用加盐哈希作为密码是安全的,但我想知道是否建议使用它并将哈希密码存储在我的 icloud 工具包(我的数据库)中

【问题讨论】:

    标签: swift security encryption hash passwords


    【解决方案1】:

    如果您需要原件,建议将密码存储在钥匙串中。如果您只需要存储一个哈希进行验证,请将其加盐并将其存储为 SHA-256 HASH(并将盐保存在钥匙串中,也可能是哈希)。

    如果您需要在 iOS 设备上的数据库中输入密码,并且无论出于何种原因钥匙串对您不起作用,您应该使用 SQLCipher,并让用户输入数据库密码来解锁它,而不是存储任何地方的数据库密钥。如果你走这条路,请在用户输入上使用密钥派生函数,例如 PBKDF2。

    通常,假设您存储的任何密码都是安全问题。尽量不要自己存储它们。

    【讨论】:

    • 你能解释一下关于 KDF 的部分吗?我认为您总是希望使用 KDF 而不是易于暴力破解的 salt+hash...
    • KDF 的目的是引入计算延迟以防止暴力攻击。相比之下,散列被设计为快速。在选择正确的道路上,比我聪明的人有很多关于 SO 的答案。例如,请参阅crypto.stackexchange.com/questions/4033/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多