PowerShell – Check Password Complexity

email me

clear-host

$Password = Read-Host "{{ PASSWORD COMPLEXITY VERIFICATION }}`n`nPassword must meet these requirements:
`n`nAt least one upper case letter [A-Z]`nAt least one lower case letter [a-z]`nAt least one number [0-9]`nAt least one special character (!,@,%,^,&,$,_)`nPassword length must be 7 to 25 characters.`n`n`nEnter Password"

if(($Password -cmatch '[a-z]') -and ($Password -cmatch '[A-Z]') -and ($Password -match '\d') -and ($Password.length -match '^([7-9]|[1][0-9]|[2][0-5])$') -and ($Password -match '!|@|#|%|^|&|$|_'))
{
Write-Host "`nPassword is valid!`n"
}
else
{
Write-Host "`nPassword is invalid!`n"
}

 

Notes

clear-host

$RegEx = @”
^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]))([A-Za-z\d@#$%^&£*\-_+=[\]{}|\\:’,?/`~”();!]|\.(?!@)){8,16}$
“@

"Wo0@12345678" -cmatch $RegExp