divineomega / password_exposed

此PHP包提供了一个`password_exposed`辅助函数,该函数使用haveibeenpwned.com API检查密码是否在数据泄露中暴露。

v3.2.0 2021-04-20 09:34 UTC

README

此PHP包提供了一个password_exposed辅助函数,该函数使用haveibeenpwned.com API检查密码是否在数据泄露中暴露。

Build Status StyleCI

安装

您可以使用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);