【问题标题】:How to create SHA256 Passwords in PHP in this format?如何以这种格式在 PHP 中创建 SHA256 密码?
【发布时间】:2020-07-10 05:49:11
【问题描述】:

这是什么密码格式?

根据我的研究,它看起来像一个 64 长度 150000 次迭代 pbkdf2 sha256 加密密钥

如果我需要用 PHP 编写一些东西来创建用户,我会怎么做?

 pbkdf2:sha256:150000$5gmU8sPF$fd67586ce17773c31d8b68711e11fdc2c1c9b7e183e702b039f52498742b665e

非常感谢

亨利

【问题讨论】:

    标签: sha256 pbkdf2


    【解决方案1】:

    可以减少到 1-10K 迭代,而不是 150K 迭代。

    /* generate 44 bytes password hash
        using hash key + multiple salts
    */
    
    function hash_password($password, $key, $salts, $iteration = 1000) {
       $hash = $password;
    
       if (is_string($salts)) {
           $salts = (Object)[$key => $salts];
       }
    
       foreach ($salts as $k => $salt) {
           $hash = hash_pbkdf2('sha256', $hash, $k.$salt, 1000, 0, true));
       }
    
       return base64_encode(hash_pbkdf2('sha256', $hash, $key, $iteration, 0, true));
    }
    
    /* usage:
       $hash = hash_password('passw@rd', 'hashkey', (Object)[ 'gen' => 'OO7', ...]);
     */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多