martinssipenko/password-policy
最新稳定版本:1.0.0
Composer 安装命令:
composer require martinssipenko/password-policy
包简介
A tool for managing password policies
README 文档
README
A tool for checking and creating password policies in PHP and JS.
Installation
Use composer to setup an autoloader
php composer.phar install Require the composer autoload file:
require_once 'vendor/autoload.php'; Usage:
To use, first instantiate the core policy object:
$policy = new \PasswordPolicy\Policy; Then, add rules:
$policy->contains('lowercase', $policy->atLeast(2)); Supported rule helper methods are:
-
contains($class, $constraint = null, $description = ''): Checks to see if a password contains a class of charsSupported Short-Cut classes:
letter-a-zA-Zlowercase-a-zuppercase-A-Zdigit-0-9symbol-^a-zA-Z0-9(in other words, non-alpha-numeric)null-\0alnum-a-zA-Z0-9
The second param is a constraint (optional)
-
length($constraint): Checks the length of the password matches a constraint -
endsWith($class, $description = ''): Checks to see if the password ends with a character class. -
startsWith($class, $description = ''): Checks to see if the password starts with a character class. -
notMatch($regex, $description): Checks if the password does not match a regex. -
match($regex, $description): Checks if the password matches the regex.
Supported Constraints:
The policy also has short-cut helpers for creating constraints:
-
atLeast($n): At least the param matchesEquivilant to
between($n, PHP_INT_MAX) -
atMost($n): At most the param matchesEquivilant to
between(0, $n) -
between($min, $max): Between $min and $max number of matches -
never(): No matchesEquivilant to
between(0, 0)
Testing the policy
Once you setup the policy, you can then test it in PHP using the test($password) method.
$result = $policy->test($password); The result return is a stdclass object with two members, result and messages.
-
$result->result- A boolean if the password is valid. -
$result->messages- An array of messages
Each message is an object of two members:
-
$message->result- A boolean indicating if the rule passed -
$message->message- A textual description of the rule
Using JavaScript
Once you've built the policy, you can call toJavaScript() to generate a JS anonymous function for injecting into JS code.
$js = $policy->toJavaScript(); echo "var policy = $js;"; Then, the policy object in JS is basically a wrapper for $policy->test($password), and behaves the same (same return values).
var result = policy(password); if (!result.result) { /* Process Messages To Display Failure To User */ } One note for the JavaScript, any regular expressions that you write need to be deliminated by / and be valid JS regexes (no PREG specific functionality is allowed).
martinssipenko/password-policy 适用场景与选型建议
martinssipenko/password-policy 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 53.41k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「password」 「Policy」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 martinssipenko/password-policy 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 martinssipenko/password-policy 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 martinssipenko/password-policy 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Simple and configurable SilverStripe module to notify users about cookie policies
A module for CSP headers in Silverstripe.
The PHP class PasswordGenerator serves as a password generator to create memorable passwords like the keychain of macOS ≤ 10.14 did.
Laravel middleware to restrict a site or specific routes using HTTP basic authentication
High-level cryptographic primitives and security utilities for Maatify systems including password hashing, reversible encryption, HKDF key derivation, and key rotation.
A library for reading KeePass 2.x databases
统计信息
- 总下载量: 53.41k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04