【问题标题】:Salting a password with a "joined" datetime使用“加入”日期时间对密码进行加盐处理
【发布时间】:2011-08-10 15:01:55
【问题描述】:

我在其他文章中看到过此信息,但大多数都使用已知值(如用户名)进行加盐。如果joined 数据未在站点的任何位置公开,那么使用joined 日期时间(或joined 日期时间的MD5)对密码进行加盐是否是进一步保护凭据的安全方法?

提前致谢!

【问题讨论】:

    标签: php security salt


    【解决方案1】:

    用真正随机的盐代替盐。猜测基于日期的盐似乎有点太容易了,尤其是如果有人知道该人成为网站成员的时间。

    你可以这样做:

    $salt = substr(sha1(uniqid(mt_rand(), true)), 0, 16);
    

    【讨论】:

    • +1:Salt 应该始终是随机的,并且对于每个用户来说都是不同的。
    • @TaylorOtwell 够公平的!我在想,因为它有时间到第二个,我也可以对它进行 MD5,我可以避免在用户数据库中添加另一个字段。谢谢。
    • @cbh - 是的,您需要继续添加“盐”字段。它会更加安全。
    • @TaylorOtwell 完成。我想如果用户更改密码,我应该更新盐?还是没有必要?
    • @cbh - 去吧。伤不起。
    【解决方案2】:

    我实际上做了这样的事情:

    $password = mysqli_real_escape_string($connect, $_POST['password']);
    $salt_shaker = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
    $salted = $password.$salt_shaker;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-06
      • 2019-07-11
      • 2011-01-01
      • 1970-01-01
      • 2013-09-22
      • 2015-12-28
      • 1970-01-01
      • 2015-10-08
      相关资源
      最近更新 更多