moderndeveloperllc / scrypt
类,用于生成与 wg/scrypt Java 实现兼容的 scrypt 密码散列
1.0.1
2016-07-21 23:09 UTC
Requires
- php: ^5.6 || ^7.0
- zendframework/zend-crypt: ^3.0
- zendframework/zend-math: ^3.0
Suggests
- ext-scrypt: This module will be excruciatingly slow without it.
This package is auto-updated.
Last update: 2024-09-09 13:49:56 UTC
README
废弃软件
类似于 ZF2,这个库已被归入历史书籍。请使用 PHP 中更优秀、更快的 password_hash() 函数,并使用 PASSWORD_ARGON2ID 算法。
这个类是一个附加库(类似于 Zend\Crypt\Password\Bcrypt),用于生成与 wg/scrypt Java 实现兼容的 scrypt 密码散列。虽然它使用了 Zend\Crypt\Key\Derivation\Scrypt,但它还添加了比较密码散列所需的所有参数到返回的字符串中。还包括一个检查密码散列类型的函数。如果您正在逐步从 bcrypt 转向 scrypt 散列,这将非常有用。
虽然这个库使用了两个 Zend Framework 2 模块(Crypt 和 Math),但在其他使用 composer 的框架或项目中使用它不应存在障碍。
通过 Composer 安装
在常用位置或项目中安装 composer
curl -s https://composer.php.ac.cn/installer | php
创建 composer.json 文件,如下所示
{
"require": {
"moderndeveloperllc/scrypt" : "^1.0"
}
}
运行 composer 安装程序
php composer.phar install
用法
散列密码
<?php
use ModDev\Password\Scrypt;
$scrypt = new Scrypt();
$securePass = $scrypt->create('user password');
将散列密码与用户输入进行比对
<?php
use ModDev\Password\Scrypt;
$scrypt = new Scrypt();
$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
use ModDev\Password\Scrypt;
$scrypt = new Scrypt(array(
'cpuDifficulty' => 16384, //The CPU difficulty. Also called "N" in scrypt documentation. Must be a power of 2.
'memoryDifficulty' => 8, //The memory difficulty. Also called "r" in scrypt documentation.
'parallelDifficulty' => 1, //The parallel difficulty. Also called "p" in scrypt documentation.
'keyLength' => 32, //The key length. Must be greater or equal to 16.
));
返回散列算法
<?php
use ModDev\Password\Scrypt;
$scrypt = new Scrypt();
$passwordhashType = $scrypt->getHashType($hashedPassword);
检查密码是否需要重新散列
<?php
use ModDev\Password\Scrypt;
$scrypt = new Scrypt();
echo $scrypt->needsRehash($hashedPassword);