Password Strength Checker





Advanced Password Strength Checker


Instantly test & create strong passwords with real-time feedback, strength meter, auto-generation, and copy functionality.














Strength: 0% (Very Weak)



  • ❌ At least 8 characters

  • ❌ Lowercase letter

  • ❌ Uppercase letter

  • ❌ Number (0–9)

  • ❌ Special character (!@#$…)





About This Tool


Create and test passwords with instant feedback. See what makes a password strong based on length, character variety, and complexity, using a colorful gradient strength meter similar to best practices.
Password Strength Checker

How to Use:



  1. Type or generate a password.

  2. View strength meter update in real-time.

  3. See requirement checklist update as criteria are met.

  4. Copy secure password with one click.


Pro Tips:



  • Use passphrases over 12 characters for extra security.

  • Include mixed case, numbers, and symbols.

  • Avoid predictable words or patterns.

  • Use a password manager to store strong passwords.





copyright>// const pwd = document.getElementById("password");
const toggle = document.getElementById("togglePassword");
const copyBtn = document.getElementById("copyPassword");
const genBtn = document.getElementById("genPassword");
const strengthBar = document.getElementById("strengthBar");
const strengthText = document.getElementById("strengthText");
const reqs = {
length: document.getElementById("req-length"),
lower: document.getElementById("req-lower"),
upper: document.getElementById("req-upper"),
number: document.getElementById("req-number"),
symbol: document.getElementById("req-symbol")
};

const updateStrength = () => {
const val = pwd.value;
let score = 0;
reqs.length.textContent = (val.length >=8 ? '✅ ' : '❌ ') + 'At least 8 characters';
reqs.lower.textContent = (/[a-z]/.test(val) ? '✅ ' : '❌ ') + 'Lowercase letter';
reqs.upper.textContent = (/[A-Z]/.test(val) ? '✅ ' : '❌ ') + 'Uppercase letter';
reqs.number.textContent = (/[0-9]/.test(val) ? '✅ ' : '❌ ') + 'Number (0–9)';
reqs.symbol.textContent = (/[^A-Za-z0-9]/.test(val) ? '✅ ' : '❌ ') + 'Special character (!@#$…)';

score += Math.min(5, Math.floor(val.length / 4));
score += /[a-z]/.test(val) ? 1 : 0;
score += /[A-Z]/.test(val) ? 1 : 0;
score += /[0-9]/.test(val) ? 1 : 0;
score += /[^A-Za-z0-9]/.test(val) ? 1 : 0;

const percent = Math.min(100, Math.floor(score * 100 / 9));
strengthBar.style.width = percent + '%';

let label = 'Very Weak', color = '#dc3545';
if(percent > 80){ label = 'Very Strong'; color = '#28a745'; }
else if(percent > 60){ label = 'Strong'; color = '#007bff'; }
else if(percent > 40){ label = 'Medium'; color = '#ffc107'; }
else if(percent > 20){ label = 'Weak'; color = '#fd7e14'; }

strengthBar.style.background = `linear-gradient(to right, #dc3545, #ffc107, #28a745)`;
strengthText.textContent = `Strength: ${percent}% (${label})`;
};

pwd.addEventListener("input", updateStrength);
toggle.addEventListener("click", () => {
pwd.type = pwd.type === "password" ? "text" : "password";
toggle.textContent = pwd.type === "password" ? "Show" : "Hide";
});
copyBtn.addEventListener("click", () => {
if(!pwd.value){ alert("Nothing to copy."); return; }
pwd.select(); document.execCommand("copy");
alert("Password copied!");
});
genBtn.addEventListener("click", () => {
const length = 12;
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+~";
let pass = "";
for(let i=0;i pwd.value = pass;
updateStrength();
});
// ]]>

Leave a Reply

Your email address will not be published. Required fields are marked *