【问题标题】:Sending random password salt as activation code?发送随机密码盐作为激活码?
【发布时间】:2014-02-16 02:25:58
【问题描述】:

我将设置我的注册表单以发送包含唯一代码(非常标准)的激活电子邮件。

我已经在我的数据库中为每个用户存储了一个随机生成的盐,它在注册时应用于他们的密码。

我的问题是,我有什么理由不应该只使用该盐作为用于激活电子邮件的唯一代码?这不会为我节省任何工作,但它可以随着时间的推移节省数据库空间。大多数情况下,我只是好奇人们会怎么想向用户展示他的密码盐。

【问题讨论】:

  • 好吧,如果您的空间太紧,您可以在使用后从数据库中删除激活码。事实上,如果激活码存在,您可以使用删除操作作为验证。
  • 一个适当的加盐和散列的字符串不应该因为公开盐而受到损害,但是,拥有盐可能有助于暴力破解散列。

标签: php security salt activation


【解决方案1】:

这不一定是一个好的解决方案,但由于盐是独一无二的,所以它不应该是一个大问题。您可以对盐进行 rot13 和 base64 编码。然后,实际上没有人知道它是盐,您可以轻松地将其反转以查找它。

【讨论】:

    【解决方案2】:

    如果用户是黑客,知道自己的 salt 会让他们更容易破解自己的自己的帐户,但如果每个人的 salt 都不一样,那么没有理由不这样做,如果是对你来说更容易。了解自己的盐只会帮助您作为黑客破解您自己的帐户。所以,简而言之,没有真正的原因。

    【讨论】:

      【解决方案3】:

      最好使用单独的、安全生成的值。

      正如@SyntaxLAMP 提到的,使用盐作为激活码是information leakage 的一种形式。这也可能为MITM attack 打开大门,如果有人有足够的位置来检索所有通过明文发送的注册用户的盐分。

      【讨论】:

        猜你喜欢
        • 2013-04-06
        • 2010-10-06
        • 1970-01-01
        • 2011-04-30
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多