elliotjreed/haveibeenpwned

2.0.0 2023-12-16 08:03 UTC

This package is auto-updated.

Last update: 2024-09-16 09:47:14 UTC


README

Contributor Covenant

Have I Been Pwned PHP

需要 PHP 8.1 或更高版本。对于 PHP 7.4 到 8.0,请使用版本 1.2.x。

用法

需要 Have I Been Pwned API 密钥。这可以通过月度订阅或一次性月度访问费获得。

https://haveibeenpwned.com/API/v3#

安装

通过 Composer 安装此包

composer require elliotjreed/haveibeenpwned

按电子邮件地址统计泄露数量

返回指定电子邮件地址的所有泄露的数量(int)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$count = (new \ElliotJReed\HaveIBeenPwned\BreachedAccount($guzzle, $apiKey))->count('email@example.com');

按电子邮件地址的泄露

返回指定电子邮件地址的所有泄露的详细信息(《ElliotJReed\HaveIBeenPwned\Entity\Breach[]》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$breaches = (new \ElliotJReed\HaveIBeenPwned\BreachedAccount($guzzle, $apiKey))->breaches('email@example.com');

按电子邮件地址的泄露名称

返回指定电子邮件地址的泄露名称(《string[]》);

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$breachNames = (new \ElliotJReed\HaveIBeenPwned\BreachedAccount($guzzle, $apiKey))->breachNames('email@example.com');

按密码统计泄露密码数量

返回指定密码的泄露密码数量(int)。

注意:此 API 调用不会将实际密码发送到 Have I Been Pwned API,请参阅:https://haveibeenpwned.com/API/v3#PwnedPasswords

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$count = (new \ElliotJReed\HaveIBeenPwned\Password($guzzle, $apiKey))->count('password123');

按电子邮件地址的帖子

返回在 "pastes" 在线中出现的指定电子邮件地址的详细信息(《\ElliotJReed\HaveIBeenPwned\Builder\Paste[]》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$pastes = (new \ElliotJReed\HaveIBeenPwned\PastedAccount($guzzle, $apiKey))->pastes('email@example.com');

泄露来源

返回 Have I Been Pwned 记录的所有泄露来源(《\ElliotJReed\HaveIBeenPwned\Entity\Breach[]》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$allBreaches = (new \ElliotJReed\HaveIBeenPwned\Breaches($guzzle, $apiKey))->allSources();

按名称返回泄露来源

按来源名称返回泄露详细信息(《\ElliotJReed\HaveIBeenPwned\Entity\Breach》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$breachesBySource = (new \ElliotJReed\HaveIBeenPwned\Breaches($guzzle, $apiKey))->bySourceName('Adobe');

按域名返回泄露来源

按域名名称返回泄露详细信息(《\ElliotJReed\HaveIBeenPwned\Entity\Breach》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$breachesBySource = (new \ElliotJReed\HaveIBeenPwned\Breaches($guzzle, $apiKey))->byDomain('adobe.com');

数据类别

返回 Have I Been Pwned 使用的数据类别(《string[]》)。

$guzzle = new \GuzzleHttp\Client();
$apiKey = 'HIBP-API-KEY';

$haveIBeenPwnedDataClasses = (new \ElliotJReed\HaveIBeenPwned\DataClasses($guzzle, $apiKey))->all();

开发

期望已安装 PHP 7.4 或 8.0 和 Composer。

安装 Composer

有关如何安装 Composer 的说明,请访问 getcomposer.org

安装

在克隆此存储库后,切换到新创建的目录,并运行

composer install

或者如果您已在本目录中本地安装了 Composer

php composer.phar install

这将安装项目所需的所有依赖项。

因此,本 README 的其余部分将假定已安装全局 composer(即如果您正在使用 composer.phar,您需要在使用终端/命令行时使用 composer.phar 而不是 composer)。

运行测试

单元测试

此项目的单元测试是通过 PHPUnit 进行的。

可以通过执行以下操作运行所有单元测试

composer phpunit

调试

要使 PHPUnit 在遇到第一个失败的测试时停止并报告,请运行

composer phpunit:debug

静态分析

静态分析工具可以指出您代码中的潜在 "弱点",并在识别意外副作用方面很有用。

Psalm 已配置在其最高级别,这意味着假阳性相当可能。

可以通过执行以下操作运行所有静态分析测试

composer static-analysis

代码格式化

当在团队中工作时,代码风格的标准可以很重要,因为这意味着开发者花费在处理他们阅读的内容上的时间会更少(因为一切都将是一致的)。

可以通过执行以下操作运行代码格式化检查(通过 PHP Code Sniffer

composer phpcs

运行一切

可以通过执行以下操作运行所有测试

composer test

过时的依赖项

检查过时的Composer依赖可以通过执行以下命令来完成:

composer outdated

验证Composer配置

检查composer.json是否有效,可以通过执行以下命令来完成:

composer validate --no-check-publish

通过GNU Make运行

如果已安装GNU Make,您可以将上述composer命令前缀替换为make

可以通过执行以下操作运行所有测试

make test

在持续集成平台(例如Travis)上运行测试

要运行所有测试并以Clover XML格式报告代码覆盖率(许多CI平台可以读取,包括Travis CI),请将以下内容添加到您的CI配置文件中(例如.travis.yml

  script:
    - composer ci

编码规范

PHP编码规范非常严格,定义在ruleset.xml中。

规则基于PSR-2和PSR-12标准,并额外定义了一些规则。

可以通过执行以下命令来运行代码格式化检查:

composer phpcs

要尽可能地自动修复任何问题,请运行

composer phpcs:fix

构建工具

许可证

本项目采用MIT许可证 - 详细内容请参阅LICENCE.md文件。