检查输入密码字符串的安全强度 必须至少包含6个字符,否则重新输入 提示强度(1-4级,密码强度等级与包含字符种类的对应关系) 包含大写字母 包含小写字母 包含数字 包含指定的标点符号,.!;?<>/*
时间: 2023-04-12 22:01:08 浏览: 117
以下是一个可能的实现:
```lua
local function check_password_strength(password)
if #password < 6 then
return false, "密码长度必须至少为6个字符"
end
local has_uppercase = false
local has_lowercase = false
local has_digit = false
local has_punctuation = false
for i = 1, #password do
local c = password:sub(i, i)
if c:match("%u") then
has_uppercase = true
elseif c:match("%l") then
has_lowercase = true
elseif c:match("%d") then
has_digit = true
elseif c:match("[,.!;?<>/*]") then
has_punctuation = true
end
end
local strength = 0
if has_uppercase then
strength = strength + 1
end
if has_lowercase then
strength = strength + 1
end
if has_digit then
strength = strength + 1
end
if has_punctuation then
strength = strength + 1
end
if strength == 0 then
return false, "密码必须包含大写字母、小写字母、数字或标点符号中的至少一种"
elseif strength == 1 then
return true, "密码强度:1级"
elseif strength == 2 then
return true, "密码强度:2级"
elseif strength == 3 then
return true, "密码强度:3级"
else
return true, "密码强度:4级"
end
end
```
这个函数接受一个字符串参数 `password`,返回两个值:一个布尔值表示密码是否符合要求,一个字符串表示密码的强度级别。如果密码不符合要求,第一个返回值为 `false`,第二个返回值是一个提示信息。如果密码符合要求,第一个返回值为 `true`,第二个返回值是一个表示强度级别的字符串。
阅读全文