elliotjreed / haveibeenpwned
PHP
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.41
- phpunit/phpunit: ^10.5
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.8
- vimeo/psalm: ^5.4
This package is auto-updated.
Last update: 2024-09-16 09:47:14 UTC
README
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文件。