pwscore 是 libpwquality 提供的本地密码强度评分工具,通过 stdin 读取密码并输出整数得分,默认合格线为 50,分数受 /etc/security/pwquality.conf 中 minlen、minclass、dcredit 等规则影响,支持离线字典检查。

pwscore 是 libpwquality 提供的一个命令行工具,用于对密码字符串进行本地强度评分(不联网、不上传),适合在 Linux 运维中快速验证自定义密码是否符合安全策略(如长度、大小写、数字、特殊字符、字典检查等)。
确认系统已安装 pwquality 工具包
多数主流发行版默认未预装 pwscore,需手动安装对应软件包:
- RHEL/CentOS/AlmaLinux:运行
yum install libpwquality或dnf install libpwquality - Ubuntu/Debian:运行
apt install libpwquality-tools - Arch Linux:运行
sudo pacman -S libpwquality
安装后可通过 pwscore --help 验证是否可用。注意:该命令无交互模式,必须通过标准输入(stdin)传入密码。
基本用法:直接测试明文密码
由于 pwscore 从标准输入读取密码(为避免历史记录泄露,不支持命令行参数传参),推荐用 echo -n 方式传递:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
echo -n "MyP@ssw0rd2024" | pwscore
输出为一个整数(如 75),代表密码得分。默认最低合格分是 50(可配置),分数越高表示越难被暴力或字典破解。低于阈值时会同时输出具体失败原因,例如:
The password contains less than 1 uppercase letters.
查看并理解评分逻辑与策略依据
得分由 /etc/security/pwquality.conf(或 /etc/pwquality.conf)中的规则决定。常见影响项包括:
-
minlen = 12:最小长度,每少1位扣一定分 -
minclass = 4:要求至少含4类字符(大写、小写、数字、符号),缺1类显著降分 -
dcredit = -1:每缺少1个数字扣1分;类似还有ucredit、lcredit、ocredit -
dictcheck = 1:启用字典检查(默认使用/usr/share/cracklib/pw_dict),命中常见词直接判低分
修改配置后无需重启服务,pwscore 每次运行都会实时读取。
运维实用技巧与注意事项
- 测试脚本中避免硬编码密码:可用
read -s安全读取,再管道传递,防止密码出现在进程参数或 shell 历史中 - 批量测试多个密码?可逐行用
while read p; do echo -n "$p" | pwscore; done - 注意空格和换行:务必用
echo -n,否则末尾换行符会被计入密码导致误判 - 离线可用:所有检查(含字典)均在本地完成,无网络请求,符合安全审计要求

















