Password Policy Checker
Validate passwords against custom security rules you define.
How it works
The Policy Checker validates your password against each rule you enable. Quick Check uses default rules for instant feedback. Advanced mode lets you define custom policy rules.
Introduction
Your organization requires 8 characters, one uppercase, one number, and one special character. Congratulations — you've just described 'Summer2024!', a password that meets every rule and takes 3 seconds to crack. The Password Policy Checker tests your credentials against real organizational policies and reveals the gap between compliance and actual security. It shows you exactly how your password performs under NIST, PCI-DSS, HIPAA, and custom policy frameworks — and where those policies fail to protect you.
What This Tool Does
A password policy checker is a tool that evaluates passwords against predefined organizational or regulatory requirements, verifying compliance with rules like minimum length, character class composition, maximum age, and breach database checks. Unlike strength checkers that measure entropy, policy checkers measure whether a password meets specific administrative requirements defined by frameworks like NIST 800-63B, PCI-DSS, HIPAA, and SOC 2. The tool reveals the critical distinction between policy compliance and actual security — a password can pass every policy rule while remaining trivially crackable if it follows common patterns.
Why It Matters
Password policies are the most widely deployed security control in the world — and the most misunderstood. Most policies focus on composition rules (uppercase, numbers, symbols) that research has shown do not meaningfully improve security. A 2017 NIST revision specifically recommended against composition rules, citing evidence that they lead users to predictable patterns like 'Password1!' instead of truly random credentials. The Password Policy Checker bridges the gap between what your policy says and what actually protects your accounts. It tests both compliance and real strength, so you can see whether your organization's rules are protecting you or giving you a false sense of security.
How It Works
The checker loads predefined policy templates for each framework: NIST 800-63B (min 8 chars, no composition rules, breach check required, no max age), PCI-DSS (min 7 chars, all four character classes, 90-day rotation), HIPAA (min 8 chars, upper+lower+digit, 90-day rotation), and custom policies with user-configurable rules. For each policy, the tool evaluates: length requirements (minimum and maximum), composition rules (required character classes), breach database lookup (checking against known leaked passwords), and pattern restrictions (banning common patterns). The output shows both compliance status (pass/fail with specific violations) and actual entropy, revealing when a compliant password is still weak.
A comparison matrix showing five policy frameworks (NIST, PCI-DSS, HIPAA, SOC 2, Custom) evaluated across six dimensions: minimum length, composition rules, breach checking, maximum age, maximum length, and pattern restrictions. A second diagram shows the gap between compliance and security: 'Summer2024!' passes all policies but has only 32 bits of entropy.
Step-by-Step Examples
Enter a password and select the NIST 800-63B policy template
NIST requires: minimum 8 characters, maximum 64, no composition rules, no mandatory periodic changes
The checker verifies your password is at least 8 characters and not in known breach databases
It calculates entropy independently of policy compliance — showing both the pass/fail and the actual strength
NIST Compliance: PASS (8+ chars, not in breach database). Actual entropy: 72.3 bits. Security rating: Strong.Enter a password and select the PCI-DSS policy template
PCI-DSS requires: minimum 7 characters (or 8 for admin), uppercase + lowercase + number + special character
The checker verifies all composition rules are met
It flags that the password meets compliance but may still be weak if it follows predictable patterns
PCI-DSS Compliance: PASS (all character classes present, 8+ chars). Note: Composition rules met but actual entropy may still be low if the password follows predictable patterns.Code Examples
function checkPasswordPolicy(password) {
const policies = {
nist: { name: 'NIST 800-63B', minLength: 8, maxLength: 64, composition: false, breachCheck: true },
pci: { name: 'PCI-DSS v4.0', minLength: 7, composition: true, requireUpper: true, requireLower: true, requireDigit: true, requireSymbol: true },
hipaa: { name: 'HIPAA', minLength: 8, composition: true, requireUpper: true, requireLower: true, requireDigit: true }
};
const results = {};
for (const [key, policy] of Object.entries(policies)) {
const violations = [];
if (password.length < policy.minLength) violations.push(`Minimum length: ${policy.minLength}`);
if (policy.composition) {
if (policy.requireUpper && !/[A-Z]/.test(password)) violations.push('Requires uppercase');
if (policy.requireLower && !/[a-z]/.test(password)) violations.push('Requires lowercase');
if (policy.requireDigit && !/[0-9]/.test(password)) violations.push('Requires digit');
if (policy.requireSymbol && !/[^a-zA-Z0-9]/.test(password)) violations.push('Requires symbol');
}
results[key] = { name: policy.name, compliant: violations.length === 0, violations };
}
return results;
}
console.log(checkPasswordPolicy('Summer2024!'));
// { nist: { compliant: true }, pci: { compliant: true }, hipaa: { compliant: true } }class PasswordPolicy {
constructor(options = {}) {
this.minLength = options.minLength || 8;
this.maxLength = options.maxLength || 64;
this.requireUpper = options.requireUpper || false;
this.requireLower = options.requireLower || false;
this.requireDigit = options.requireDigit || false;
this.requireSymbol = options.requireSymbol || false;
this.bannedPatterns = options.bannedPatterns || [];
}
evaluate(password) {
const results = { violations: [], warnings: [], score: 0 };
if (password.length < this.minLength) results.violations.push(`Too short: ${password.length}/${this.minLength}`);
else results.score += 20;
if (this.requireUpper && !/[A-Z]/.test(password)) results.violations.push('Missing uppercase');
else if (this.requireUpper) results.score += 15;
if (this.requireLower && !/[a-z]/.test(password)) results.violations.push('Missing lowercase');
else if (this.requireLower) results.score += 15;
if (this.requireDigit && !/[0-9]/.test(password)) results.violations.push('Missing digit');
else if (this.requireDigit) results.score += 15;
if (this.requireSymbol && !/[^a-zA-Z0-9]/.test(password)) results.violations.push('Missing symbol');
else if (this.requireSymbol) results.score += 15;
for (const pattern of this.bannedPatterns) {
if (password.toLowerCase().includes(pattern.toLowerCase())) {
results.violations.push(`Contains banned: ${pattern}`);
results.score -= 20;
}
}
results.compliant = results.violations.length === 0;
return results;
}
}
const policy = new PasswordPolicy({ minLength: 12, requireUpper: true, requireLower: true, requireDigit: true, bannedPatterns: ['password', 'admin'] });
console.log(policy.evaluate('MyStr0ng!Pass'));
// { compliant: true, score: 65 }Password Policy Framework Comparison
| Framework | Min Length | Composition Rules | Breach Check | Max Age | Key Restriction |
|---|---|---|---|---|---|
| NIST 800-63B (2017+) | 8 chars | None required | Required | None (unless compromised) | Min 64 chars |
| PCI-DSS v4.0 | 7 chars (12 for admin) | Upper + Lower + Digit + Symbol | Recommended | 90 days | None |
| HIPAA | 8 chars | Upper + Lower + Digit | Recommended | 90 days (common practice) | None |
| SOC 2 | 8 chars | Upper + Lower + Digit + Symbol | Required | 90 days (common practice) | None |
| Microsoft Entra ID | 8 chars (16 for admin) | None required (conditional) | Required | None (since 2019) | Blocks 10K+ common |
| Custom (Typical) | 10 chars | Upper + Lower + Digit + Symbol | Optional | 180 days | None |
Policy Compliance vs Actual Security
| Scenario | Meets Policy? | Entropy (bits) | Crack Time | Secure? |
|---|---|---|---|---|
| Summer2024! (PCI-DSS) | YES | 32.1 | < 1 minute | NO |
| Tr0ub4dor&3 (PCI-DSS) | YES | 38.6 | 2 minutes | NO |
| correct horse battery staple | NO (no uppercase/symbol) | 64.6 | 3.6 years | YES |
| k9$mPx2#nLq!vR7@ (PCI-DSS) | YES | 105.1 | 317 billion years | YES |
| aB3$xY9# (PCI-DSS) | YES | 52.5 | 1.1 years | Marginal |
Benefits
- Tests passwords against 5 major compliance frameworks: NIST 800-63B, PCI-DSS, HIPAA, SOC 2, and custom policies.
- Reveals the gap between policy compliance and actual security — showing that meeting requirements doesn't guarantee strength.
- Custom policy builder lets organizations define their own rules with granular composition and pattern controls.
- Provides entropy calculations alongside compliance checks for a complete security picture.
- Flags passwords found in breach databases regardless of policy compliance — a password can pass every rule and still be compromised.
Use Cases
Auditing whether your organization's current password policy provides meaningful security or just creates compliance theater.
Verifying that new password deployments meet regulatory requirements (PCI-DSS for payments, HIPAA for healthcare).
Evaluating whether to adopt NIST 800-63B guidelines that eliminate composition rules in favor of length and breach checking.
Building custom policies for applications that need specific security requirements beyond standard frameworks.
Common Mistakes to Avoid
Assuming policy compliance equals security — 'Summer2024!' meets every PCI-DSS rule but is crackable in seconds.
Setting minimum lengths below 12 characters when the system supports longer passwords — every extra character multiplies crack time.
Mandating periodic password changes without evidence — NIST recommends against this because it causes users to create predictable patterns.
Requiring composition rules that lead users to predictable substitutions (adding '!' or '1' to the end of dictionary words).
Security Implications
Password policies that focus on composition rules (uppercase, numbers, symbols) have been shown to reduce security by encouraging predictable patterns. The 2017 NIST revision specifically recommended against mandatory composition rules, instead requiring minimum length (8+), breach database checking, and no mandatory periodic changes. Organizations still enforcing outdated policies may actually be making their users' passwords weaker. The Password Policy Checker reveals these gaps, showing that a 10-character random password without composition rules can be stronger than an 8-character password meeting every rule.
Security Information
All policy evaluation runs client-side. No password data is transmitted. The tool is designed for security auditing and education — it helps organizations identify gaps in their password policies and understand where compliance does not equal security. Policy templates are based on publicly available framework specifications (NIST, PCI-DSS, HIPAA) and are updated as standards evolve.
Best Practices
- Adopt NIST 800-63B guidelines: minimum 8 characters, no composition rules, breach database checking, no mandatory periodic changes.
- If you must enforce composition rules, require minimum 12 characters to ensure adequate entropy despite predictable patterns.
- Implement breach database checking (Have I Been Pwned API) to block known-compromised passwords regardless of policy compliance.
- Audit your policy annually against current research — outdated policies can make passwords weaker, not stronger.
- Communicate to users that meeting policy minimums is the floor, not the ceiling — longer random passwords are always better.
Frequently Asked Questions
References & Further Reading
What is a Password Policy Checker?
A password policy checker validates passwords against a set of predefined security rules. Organizations use password policies to enforce minimum security standards for user credentials. These policies typically include requirements for password length, character types, complexity, and prohibited patterns. Our tool lets you define custom policies and test passwords against them.
Password policies are essential for maintaining security across organizations. They ensure that all users create passwords meeting minimum security thresholds, reducing the risk of credential-based attacks. Common standards include NIST SP 800-63B, ISO 27001, and SOC 2 compliance requirements.
How Password Policy Validation Works
Our policy checker evaluates passwords against configurable rules using regular expressions and character analysis. Each rule is checked independently, and the tool reports which rules pass and which fail. This provides detailed feedback for users trying to create compliant passwords.
Length Rules: Minimum and maximum character counts. NIST now recommends at least 8 characters for user-generated passwords and 15+ for high-security applications.
Complexity Rules: Requirements for uppercase letters, lowercase letters, digits, and special characters. Modern guidelines emphasize length over complexity, but many legacy systems still require mixed character types.
Prohibited Patterns: Detection of common passwords, dictionary words, keyboard patterns (qwerty), repeated characters (aaa), and sequential characters (abc). These patterns are easily guessed by dictionary attacks.
Real-World Policy Checker Applications
Compliance Verification: Organizations subject to PCI DSS, HIPAA, SOX, or GDPR can use policy checkers to verify that user passwords meet regulatory requirements before deployment.
Security Auditing: Security teams can test existing passwords against updated policies to identify which accounts need password changes when policies are strengthened.
Development Testing: Developers can test their password validation logic against known edge cases to ensure their implementation correctly enforces the intended policy.
User Education: Policy checkers help users understand exactly why their password was rejected and what changes are needed. This reduces frustration and improves security awareness.
Password Policy Mistakes
Overly Complex Policies: Requiring too many character types forces users to create predictable patterns like "Password1!". NIST now recommends focusing on length (8+ characters) rather than complexity rules. Users should be allowed to use passphrases without arbitrary restrictions.
Regular Password Changes: NIST no longer recommends mandatory periodic password changes unless there is evidence of compromise. Frequent changes lead to weaker passwords as users make minimal modifications to existing passwords.
Ignoring Common Passwords: A policy that only checks character types but does not block common passwords like "password123" or "qwerty" is insufficient. Always include a dictionary of known compromised passwords.
Maximum Length Restrictions: Some systems impose maximum password lengths (like 16 characters), which unnecessarily limits security. NIST recommends allowing at least 64 characters to support passphrases.
Related Password Security Tools
Explore these complementary password analysis tools:
- Password Strength Checker — Get an overall strength assessment beyond policy compliance.
- Password Entropy Calculator — Measure the randomness of your password.
- Password Character Analyzer — Analyze your password's character composition.
- Password Crack Time Estimator — Estimate how long it would take to crack your password.
- Breach Checker — Check if your password appears in known data breaches.