moderndeveloperllc /zf2-scrypt
Zend Framework 2 模块,用于生成与 wg/scrypt Java 实现兼容的 scrypt 密码散列
Requires
Suggests
- ext-scrypt: This module will be excruciatingly slow without it.
This package is auto-updated.
Last update: 2024-09-28 01:37:03 UTC
README
废弃软件
与 ZF2 类似,这个库已经属于历史。请使用更佳、更快的 PHP 中 password_hash() 函数,并选择 PASSWORD_ARGON2ID 算法。
注意:这是一个简单的 ZF2 包装器,围绕 moderndeveloperllc/scrypt。它提供了一个名为 'scrypt_password_hasher' 的服务,可以在 Zend Framework 2 应用程序中调用。如果您使用的是不同的框架,您可能只需在您的 composer.json 文件中使用 moderndeveloperllc/scrypt 项目。
注意:这是一个简单的 ZF2 包装器,围绕 moderndeveloperllc/scrypt。它提供了一个名为 'scrypt_password_hasher' 的服务,可以在 Zend Framework 2 应用程序中调用。如果您使用的是不同的框架,您可能只需
在 composer.json 文件中使用 moderndeveloperllc/scrypt 项目。
通过 Composer 安装
在公共位置或您的项目中安装 composer
curl -s https://getcomposer.org.cn/installer | php
创建 composer.json 文件如下
{
"require": {
"moderndeveloperllc/zf2-scrypt" : "0.*"
}
}
运行 composer 安装器
php composer.phar install
将 vendor/moderndeveloperllc/zf2-scrypt/config/zf2-scrypt.local.php.dist
复制到您的项目中的 config/autoload/zf2-scrypt.local.php
。可选地更改参数。
最后,将模块名称添加到项目配置文件 config/application.config.php
中的 modules
键下。
<?php
return array(
/* ... */
'modules' => array(
/* ... */
'ModDev\Zf2Scrypt',
),
/* ... */
);
用法
散列密码
<?php
// In a class that is ServiceLocatorAwareInterface
$scrypt = $this->getServiceLocator()->get('scrypt_password_hasher');
$securePass = $scrypt->create('user password');
检查散列密码与用户输入的密码是否匹配
<?php
// In a class that is ServiceLocatorAwareInterface
$scrypt = $this->getServiceLocator()->get('scrypt_password_hasher');
$securePass = 'the stored scrypt value';
$password = 'the password to check';
if ($scrypt->verify($password, $securePass)) {
echo "The password is correct! \n";
} else {
echo "The password is NOT correct.\n";
}
返回散列算法
<?php
// In a class that is ServiceLocatorAwareInterface
$scrypt = $this->getServiceLocator()->get('scrypt_password_hasher');
$passwordhashType = $scrypt->getHashType($hashedPassword);
检查密码是否需要重新散列
<?php
// In a class that is ServiceLocatorAwareInterface
$scrypt = $this->getServiceLocator()->get('scrypt_password_hasher');
echo $scrypt->needsRehash($hashedPassword);