下面是一个用Python编写的check函数,该函数会根据您给出的规则来验证用户名和密码是否正确:
import re
def check(username, password, cypher):
# 检查用户名是否符合规则
if not (4 <= len(username) <= 12 and username[0].isalpha() and re.match(r'^[a-zA-Z0-9_]+$', username)):
return False
# 检查密码是否符合规则
if not (6 <= len(password) <= 16 and re.match(r'^[a-zA-Z0-9+\-*/@#$%]+$', password)):
return False
# 检查用户名和密码是否匹配
if cypher.get(username) == password.lower():
return True
return False
# 示例使用
cypher = {
'User1': 'Password123!',
'Admin': 'Secure*Password#'
}
# 测试函数
print(check('User1', 'Password123!', cypher)) # 应该返回 True
print(check('user1', 'password123!', cypher)) # 应该返回 False,因为用户名和密码区分大小写
print(check('Admin', 'Secure*Password#', cypher)) # 应该返回 True
print(check('admin', 'secure*password#', cypher)) # 应该返回 False,因为用户名和密码区分大小写
这个函数首先使用正则表达式来验证用户名和密码是否符合长度和字符组成的要求。然后,它检查传入的用户名和密码是否与cypher字典中的键值对匹配。