niirrty / niirrty.security.password
一个小型密码安全库
0.1.0
2018-01-09 11:52 UTC
Requires
- php: >=7.1
- niirrty/niirrty.core: ~0.1
- niirrty/niirrty.db: ~0.1
This package is auto-updated.
Last update: 2024-09-28 18:10:50 UTC
README
一个小型密码安全库。
它定义了一个单类 Niirrty\Security\Password\PasswordSecurityCheck,可用于检查密码质量。
安装
这是一个composer包,所以您可以通过composer安装它
composer require niirrty/niirrty.security.password ~0.1
或在其composer.json文件中
{
"require": {
"php": ">=7.1",
"composer require niirrty/niirrty.security.password": "~0.1"
}
}
它如何工作?
它生成了4个不同的密码质量指标
- 密码长度:使用11个或更多字符可以达到最大质量
- 字符多样性:与使用多少不同字符相关的质量
- 字符类型多样性:与使用多少不同字符类型相关的质量(小写字母、大写字母、数字、其他)
- 知名列表:如果被Top 10密码列表所知,则为1,如果被Top 25密码列表所知,则为2,如果被Top 50密码列表所知,则为5,否则为10
检查密码是否在Top 10/25/50密码列表中,使用SQLite数据库在后台进行。该数据库定义了所有唯一的Top10、Top25和Top50密码,这些密码是从SecLists密码文件中提取的,排除了西班牙语和不是*.txt文件。
每个指标都有一个介于0(无安全)和10(最大安全)之间的值
4个指标中的最低值将由 ->getQuality() 返回
密码本身不会存储在类实例中。
用法
这是一个简单的用法示例
# include __DIR__ . '/vendor/autoload.php'; use \Niirrty\Security\Password\PasswordSecurityCheck; $passwords = [ '', '0', '1', '22', 'aaa', 'aaaa', 'AAAAA', '123456', '_______', 'gEhe1m', '$4QT5/_8', '123456789' ]; foreach ( $passwords as $password ) { echo $password, ': ', ( new PasswordSecurityCheck( $password ) )->getQuality(), "\n"; }
将输出
: 0 <== LenQ=0 DivQ=0 DivTQ=0 TopQ=1
0: 0 <== LenQ=0 DivQ=1 DivTQ=2 TopQ=1
1: 0 <== LenQ=0 DivQ=1 DivTQ=2 TopQ=1
22: 1 <== LenQ=1 DivQ=1 DivTQ=2 TopQ=10
aaa: 1 <== LenQ=2 DivQ=1 DivTQ=2 TopQ=10
aaaa: 1 <== LenQ=3 DivQ=1 DivTQ=2 TopQ=1
AAAAA: 1 <== LenQ=4 DivQ=1 DivTQ=2 TopQ=10
123456: 1 <== LenQ=5 DivQ=8 DivTQ=2 TopQ=1
_______: 1 <== LenQ=6 DivQ=1 DivTQ=2 TopQ=10
gEhe1m: 5 <== LenQ=5 DivQ=6 DivTQ=6 TopQ=10
$4QT5/_8: 7 <== LenQ=7 DivQ=8 DivTQ=8 TopQ=10
123456789: 1 <== LenQ=8 DivQ=10 DivTQ=2 TopQ=1
上述使用的缩写是
- LenQ : 密码长度质量
- DivQ : 字符多样性质量
- DivTQ:字符类型多样性质量
- TopQ : 知名列表质量