tal7aouy/hashlib

生成强大的、安全的密码,能够抵御暴力破解攻击。

v1.0.0 2023-08-20 11:50 UTC

This package is auto-updated.

Last update: 2024-09-20 14:40:32 UTC


README

HashLib库提供了一种方便且灵活的方式,可以根据各种选项和要求生成、散列和验证密码。它包含一个名为Hasher的特质,该特质定义了密码生成、验证和要求检查功能。

目录

  1. 简介
  2. 安装
  3. 使用
  4. 方法
  5. 结论

简介

HashLib库旨在简化PHP应用程序中的密码散列和验证。它提供了一个名为Hasher的特质,可以轻松地将其集成到自己的类中以处理密码相关操作。

安装

可以使用Composer安装此库

composer require tal7aouy/hashlib

使用

基本散列

use Tal7aouy\HashLib\HashLib;
$passwordHash = HashLib::getInstance();
$password = "my_secure_password";
$hashedPassword = $passwordHash::hash($password);

if ($passwordHash::verify($password, $hashedPassword)) {
    echo "Password is verified!";
} else {
    echo "Password verification failed.";
}

使用盐的散列

use Tal7aouy\HashLib\HashLib;
$passwordHash = HashLib::getInstance();

$password = "my_secure_password";
$hashedData = $passwordHash::hashWithSalt($password);

if ($passwordHash::verifyWithSalt($password, $hashedData['hash'], $hashedData['salt'])) {
echo "Password is verified!";
} else {
echo "Password verification failed.";
}

密码要求检查

use Tal7aouy\HashLib\HashLib;

$passwordValidator = HashLib::getInstance();
$passwordValidator->setUseLowerCase(true);
$passwordValidator->setUseUpperCase(true);
$passwordValidator->setUseNumbers(true);
$passwordValidator->setUseSymbols(true);

$password = "Complex@Passw0rd";
$result = $passwordValidator->meetsRequirements($password);

if ($result === true) {
echo "Password meets all requirements.";
} else {
echo "Password requirements not met: " . $result;
}

方法

有关方法和描述的完整列表,请参阅完整文档

以下是HashLib库中一些关键方法的快速概述

setLength

设置生成密码所需的最小长度。

setUseLowerCase

指定是否需要在生成的密码中包含小写字母。

setUseUpperCase

指定是否需要在生成的密码中包含大写字母。

setUseNumbers

指定是否需要在生成的密码中包含数字。

setUseSymbols

指定是否需要在生成的密码中包含符号。

setPasswordRequirements

一次性设置多个密码要求。

generateSalt

使用base64编码生成随机盐。

isHashed

检查密码是否已散列。

hash

使用指定的算法和选项散列密码。

verify

验证密码是否与给定的散列匹配。

hashWithSalt

使用随机生成的盐散列密码。

verifyWithSalt

验证密码(与盐结合)是否与给定的散列匹配。

setPassword

设置用于散列和验证的密码。

getPassword

获取当前设置的密码。

meetsRequirements

检查给定的密码是否符合指定的要求。

有关详细的使用说明和示例,请参阅上面的使用部分。

结论

版本 1.0.0

许可证: MIT

对于任何问题、问题或反馈,请联系库的作者Mhammed Talhaouy。