uses
System.SysUtils, System.RegularExpressions;
function CheckPasswordStrength(const Password: string): Integer;
const
MinLength = 8; // 最小长度
MinNumbers = 1; // 最小数字数量
MinLowercase = 1; // 最小小写字母数量
MinUppercase = 1; // 最小大写字母数量
MinSpecialChars = 1; // 最小特殊字符数量
var
RegexPattern: string;
begin
Result := 0;
if Length(Password) < MinLength then Exit; // 密码太短
// 构建正则表达式
RegexPattern := Format('^(?=.*[0-9]{%d,})(?=.*[a-z]{%d,})(?=.*[A-Z]{%d,})(?=.*[!@#$%%^&*(){}[\]<>.,:;"''|+=\-_]).{%d,}$',
[MinNumbers, MinLowercase, MinUppercase, MinSpecialChars, MinLength]);
if TRegEx.IsMatch(Password, RegexPattern) then
Result := 3 // 强密码
else if TRegEx.IsMatch(Password, '^(?=.*[0-9])(?=.*[a-zA-Z]).{6,}$') then
Result := 1 // 中等密码
else
Result := 0; // 弱密码
end;
//使用如下
var
PasswordStrength: Integer;
begin
PasswordStrength := CheckPasswordStrength(edit2.Text);
case PasswordStrength of
0: ShowMessage('Weak password');
1: ShowMessage('Average password');
3: ShowMessage('Strong password');
end;
记录一下,AI自动生成,仅供参考
另转载一个