luppakorva / password_exposed
此PHP包提供了一个名为 `password_exposed` 的辅助函数,该函数使用 haveibeenpwned.com API 来检查密码是否在数据泄露中被暴露。
v3.4
2021-04-02 19:18 UTC
Requires
- php: >=8.0
- divineomega/do-file-cache-psr-6: ^2.0
- luppakorva/psr-18-guzzle-adapter: ^1.2
- nyholm/psr7: ^1.0
- paragonie/certainty: ^2.4
- php-http/discovery: ^1.6
- psr/cache: ^1.0
- psr/http-client: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message: ^1.0
- psr/http-message-implementation: ^1.0
Requires (Dev)
- fzaninotto/faker: ^1.7
- kriswallsmith/buzz: ^1.0
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.0||^8.0
- symfony/cache: ^4.2.12
- vimeo/psalm: ^1
README
此PHP包提供了一个 password_exposed 辅助函数,该函数使用 haveibeenpwned.com API 来检查密码是否在数据泄露中被暴露。
安装
使用Composer可以轻松安装 `password_exposed` 包。只需从项目根目录运行以下命令。
composer require "divineomega/password_exposed"
如果您之前从未使用过Composer依赖管理器,请访问Composer网站 获取更多信息。
使用方法
要检查密码是否在数据泄露中被暴露,只需将其传递给 `password_exposed` 方法。
以下是一个基本的使用示例
switch(password_exposed('hunter2')) { case PasswordStatus::EXPOSED: // Password has been exposed in a data breach. break; case PasswordStatus::NOT_EXPOSED: // Password has not been exposed in a known data breach. break; case PasswordStatus::UNKNOWN: // Unable to check password due to an API error. break; }
如果您想避免使用辅助函数,以下语法也是可用的。
$passwordStatus = (new PasswordExposedChecker())->passwordExposed($password);
SHA1哈希值
您还可以通过以下方法提供SHA1哈希值而不是明文密码。
$passwordStatus = (new PasswordExposedChecker())->passwordExposedByHash($hash);
或者...
$passwordStatus = password_exposed_by_hash($hash);
