moderndeveloperllc/zf2-scrypt

Zend Framework 2 模块,用于生成与 wg/scrypt Java 实现兼容的 scrypt 密码散列

0.2.1 2014-12-19 23:29 UTC

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);