crudle / phash
密码散列类
v1.0
2016-12-05 17:15 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^5.4
This package is not auto-updated.
Last update: 2024-09-23 14:10:32 UTC
README
Crudle\Phash 提供了一个方便的包装类,用于原生 password_hash 函数。这个的主要好处是可以保持面向对象。
安装
composer require crudle/phash
使用
PasswordHash 的最简单用法确实就是如此;简单!
$hash = new PasswordHash('mypassword');
字符串 'mypassword' 将会被散列并存储在对象中。如果你提供一个已经散列的字符串,值将被存储,不会进行散列。
// This works too! This is the hash that was generated from 'mypassword' $hash = new PasswordHash('$2y$10$F4L/hmnkYOSvGqU0tI4DuuszxFarOedNQA1Ws.ZHwKcRLmUlWaDTW');
一旦你创建了 PasswordHash 对象(无论是从原始密码还是散列字符串创建),你就可以在它上面执行所有原生操作
$hash = new PasswordHash('$2y$10$F4L/hmnkYOSvGqU0tI4DuuszxFarOedNQA1Ws.ZHwKcRLmUlWaDTW'); $hash->verify('mypassword'); // Throws an InvalidPasswordException if validation fails
获取散列值
如果不将散列值存储起来供以后验证,散列密码就没什么用处。幸运的是,我们只需将对象转换为字符串,就能得到我们的散列值。
$passwordHash = new PasswordHash('mypassword'); $hash = (string) $passwordHash;
额外配置
默认情况下,该包使用 PASSWORD_DEFAULT 散列算法。如果你想更改它或任何散列选项,你可以向 PasswordHash 构造函数提供一个自定义的 Config 对象。
$config = new Config(PASSWORD_BCRYPT, ['cost' => 12]); $hash = new PasswordHash('mypassword', $config);
可用方法
$hash->verify('mypassword'); // throws InvalidPasswordException $hash->needsRehash(); // throws HashValidationException $hash->getInfo(); // returns an array of config info $hash->__toString(); // returns the hash string