Código PHP:
<?php
function pwd_strength($pwd)
{
$result = 0; # intialize to weakest
$result += round(strlen($pwd) / 10);
foreach(array("a-z", "A-Z", "0-9", "^a-zA-Z0-9") as $chars)
{
if(preg_match("/[$chars]/", $pwd))
{
$result += 1;
}
}
return(min($result, 6));
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang='en'>
<head>
<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'>
<title>Password Validation</title>
<style type="text/css">
body {
font: medium arial, helvetica, sans-serif;
margin: 0;
padding: 1em 10%;
}
div {
height: 20px;
margin: 5px 0;
padding: 0;
border: solid 1px #333;
}
#str0, #str1 {
width: 12%;
background-color: #f00;
}
#str2 {
width: 24%;
background-color: #c30;
}
#str3 {
width: 36%;
background-color: #963;
}
#str4 {
width: 48%;
background-color: #693;
}
#str5 {
width: 60%;
background-color: #3c0;
}
#str6 {
width: 72%;
background-color: #0f0;
}
#rating {
width: 72%;
padding: 0;
margin: 0;
border: none;
height: auto;
}
</style>
</head>
<body>
<h1>Password Strength Rating</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>Password: <input type="password" name="password" size="16" maxlength="16">
<input type="submit" name="submit" value="Rate Password"></p>
</form>
<?php
if(isset($_POST['submit']))
{
$strength = pwd_strength($_POST['password']);
echo "<p>Password strength (1 = very weak, 6 = very strong): ".
"<strong>$strength</strong></p>\n";
echo "<div id='str$strength'></div>";
echo "<div id='rating'><p style='float: left'>Weak</p>";
echo "<p style='float: right'>Strong</p></div>\n";
}
?>
</body>
</html>