eureka / component-password

5.0.0 2024-03-12 11:18 UTC

README

Current version Supported PHP version CI Quality Gate Status Coverage

生成、散列和验证安全密码。

使用方法

Composer

composer require "eureka/component-password"

密码生成器

<?php

use Eureka\Component\Password\PasswordGenerator;
use Eureka\Component\Password\StringGenerator;

//~ Use service generator
$length  = 16;  // default
$alpha   = 0.6; // default
$numeric = 0.2; // default
$special = 0.2; // default

$generator = new PasswordGenerator(
    new StringGenerator()
);

$password = $generator->generate($length, $alpha, $numeric, $special);

echo $password->getPlain() . PHP_EOL;
echo $password->getHash() . PHP_EOL;

密码

<?php

use Eureka\Component\Password\Password;

//~ Just define password
$password = new Password('mySecretPassword');

echo $password->getHash() . PHP_EOL;
echo $password->getPlain() . PHP_EOL;

密码检查器

<?php

use Eureka\Component\Password\PasswordChecker;

//~ Just define password
$passwordChecker = new PasswordChecker();

$passwordPlain = 'mypassword'; // From login form 
$passwordHash  = '...';        // Retrieved from db for example
echo 'Is valid password: ' . $passwordChecker->verify($passwordPlain, $passwordHash) . PHP_EOL;

脚本 - 密码生成器

vendor/bin/console password/script/generator --help

将输出以下内容

Use    : bin/console Eureka\Component\Password\Script\Generator [OPTION]...
OPTIONS:
  -g,     --generate                    Generate password
  -l ARG, --length=ARG                  Password length
  -a ARG, --ratio-alpha=ARG             Alphabetic latin characters ratio
  -n ARG, --ratio-numeric=ARG           Numeric characters ratio
  -o ARG, --ratio-other=ARG             Other characters ratio

贡献

查看 CONTRIBUTING 文件。

安装/更新项目

您可以使用以下命令安装项目

make install

并且使用以下命令更新

make update

注意:对于组件,composer.lock 文件不会被提交。

测试 & CI(持续集成)

测试

您可以使用以下命令在您的环境中运行单元测试(带有覆盖率)

make tests

您可以使用以下命令在您的环境中运行集成测试(不带覆盖率)

make integration

为了获得更漂亮的输出(但不带覆盖率),您可以使用以下命令

make testdox # run tests without coverage reports but with prettified output

代码风格

您还可以使用以下命令运行代码风格检查

make phpcs

您还可以使用以下命令运行代码风格修正

make phpcsf

检查缺失的显式依赖项

您可以使用以下命令检查是否存在任何缺失的显式依赖项

make deps

静态分析

要执行代码的静态分析(使用 phpstan,默认为 lvl 9),您可以使用以下命令

make analyse

为了确保您的代码仍然与当前 Deezer 支持的版本以及未来的 PHP 版本兼容,您需要运行以下命令(两个都是必需的,以实现全面支持)

最小支持版本

make php81compatibility

最大支持版本

make php83compatibility

CI 模拟

最后,“辅助”命令,您可以在提交和推送之前运行的是

make ci  

许可证

本项目目前采用 The MIT License (MIT)。有关更多信息,请参阅 LICENCE 文件。