首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP下生成.htpasswd

如何在PHP下生成.htpasswd
EN

Stack Overflow用户
提问于 2012-05-08 19:13:31
回答 2查看 1.5K关注 0票数 2

我正在尝试生成包含大量用户的长htpasswd文件(100+)。

我在linux服务器上的DirectAdmin面板生成带有$1$开始的密码散列的htpasswd文件。

我尝试了这样的东西:

代码语言:javascript
复制
function random_salt($length = 9) // 9 characters and $1$ = 12 characters
{      
    $chars = 'bcdfghjklmnprstvwxzaeiou';

    for ($p = 0; $p < $length; $p++)
    {
        $result .= ($p%2) ? $chars[mt_rand(19, 23)] : $chars[mt_rand(0, 18)];
    }

    return $result;
}

echo crypt($myplainpassword, "$1$".random_salt());

它生成以$1$开头的散列,但是服务器不让我进入。我的密码是在excel中生成的4位随机“PIN码”。示例:

1215 5325 6261

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2015-09-11 07:34:09

下面是我生成.htpasswd密码的方法...

代码语言:javascript
复制
$new_password = password_hash($old_password, PASSWORD_BCRYPT);

password_hash()使用强单向散列算法创建新的口令散列。password_hash()与crypt()兼容。因此,由crypt()创建的密码散列可以与password_hash()一起使用。

目前支持以下算法:

PASSWORD_BCRYPT -使用CRYPT_BLOWFISH算法创建哈希。这将产生一个使用"$2y$“标识符的标准crypt()兼容散列。结果将始终是一个60个字符的字符串,如果失败,则返回FALSE。支持的选项:

http://php.net/manual/en/function.password-hash.php

票数 1
EN

Stack Overflow用户

发布于 2012-05-08 19:19:04

我建议研究哈希是如何生成的。如果您使用自己的方法创建散列,它看起来是否与DirectAdmin生成的散列相同?

一般来说,我以前使用过this来生成条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10497493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档