判断密码安全程度,鱼c作业题,怎么判断if else while 谁和谁对其呀
symbols = '''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
length = len(passwd)
while (passwd.isspace() or length == 0):
passwd = input("您输入的密码为空(或空格),请重新输入:")
if length <= 8:
flag_len =1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
for each in passwd:
if each in symbols:
flag_con += 1
break
for each in passwd:
if each in chars:
flag_con += 1
break
for each in passwd:
if each in nums:
flag_con += 1
break
while 1 :
print("您的密码安全级别评定为:", end='')
if flag_len == 1 or flag_con == 1 :
print("低")
elif flag_len == 2 or flag_con == 2 :
print("中")
else:
print("高")
print("请继续保持")
break
print("请按以下方式提升您的密码安全级别:\n\\t1. 密码必须由数字、字母及特殊字符三种组合\n\\t2. 密码只能由字母开头\n\\t3. 密码长度不能低于16位'")
break
这程序我晕了谁能给我改改错,再给我讲讲不胜感激
0. 请写一个密码安全性检查的脚本代码:check.py
# 密码安全性检查代码
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
看他密码里面出现的特殊符号的长度和频率,进行判断
对不同字符加权,比如!.,;()*这些符号的权重大一点,123bc这种权重小一点 对密码的各个字符加权,根据权重求和,得到所谓的密码安全程度 本帖最后由 笨鸟学飞 于 2020-10-20 19:50 编辑
symbols = '''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>''' #定义特殊符号字符串
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#定义所有字母字符串
nums = '0123456789'#定义所有数字字符串
passwd = input('请输入需要检查的密码组合:')#获取用户输入的密码(字符串型),并赋值给变量passwd
length = len(passwd) #获取用户输入密码的长度(也就是密码有几位),并赋值给变量length
while (passwd.isspace() or length == 0): #密码中只有空格,或者长度等于0的时候,则进入循环,否则直接跳转到while循环代码段之后执行,然而并没有语句了,注意看缩进,while循环代码段在(while)和(与 while缩进齐平的代码语句)之间。。。例如
whlie True:#为真进入循环,否则跳转到print并开始执行(注意看缩进对齐)
****
****
print(****)
我知道程序每一行的意思,我现在分不清缩进问题,不知道谁应该和While对齐,然后导致程序没有正常执行,能帮我改下正确的对齐程序吗 沈工大小o 发表于 2020-10-22 15:07
我知道程序每一行的意思,我现在分不清缩进问题,不知道谁应该和While对齐,然后导致程序没有正常执行,能 ...
symbols = '''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
length = len(passwd)
while (passwd.isspace() or length == 0):
passwd = input("您输入的密码为空(或空格),请重新输入:")
else:
if length <= 8:
flag_len = flag_con=1
elif 8 < length < 16:
flag_len = flag_con=2
else:
flag_len = 3
flag_con = 0
for each in passwd:
if each in symbols:
flag_con += 1
break
for each in passwd:
if each in chars:
flag_con += 1
break
for each in passwd:
if each in nums:
flag_con += 1
break
while 1:
print("您的密码安全级别评定为:", end='')
if flag_len == 1 or flag_con == 1:
print("低")
elif flag_len == 2 or flag_con == 2:
print("中")
else:
print("高")
print("请继续保持")
break
print("请按以下方式提升您的密码安全级别:\n\\t1. 密码必须由数字、字母及特殊字符三种组合\n\\t2. 密码只能由字母开头\n\\t3. 密码长度不能低于16位'")
break
沈工大小o 发表于 2020-10-22 15:07
我知道程序每一行的意思,我现在分不清缩进问题,不知道谁应该和While对齐,然后导致程序没有正常执行,能 ...
symbols = '''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
length = len(passwd)
flag_len=0
flag_con=0
while (passwd.isspace() or length == 0):
passwd = input("您输入的密码为空(或空格),请重新输入:")
if length <= 8:
flag_len =1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
for each in passwd:
if each in symbols:
flag_con += 1
break
for each in passwd:
if each in chars:
flag_con += 1
break
for each in passwd:
if each in nums:
flag_con += 1
break
while 1 :
print("您的密码安全级别评定为:", end='')
if flag_len == 1 or flag_con == 1 :
print("低")
elif flag_len == 2 or flag_con == 2 :
print("中")
else:
print("高")
print("请继续保持")
break
print("请按以下方式提升您的密码安全级别:\n\\t1. 密码必须由数字、字母及特殊字符三种组合\n\\t2. 密码只能由字母开头\n\\t3. 密码长度不能低于16位'")
break
经过我的修改小甲鱼的程序终于跑起来了
沈工大小o 发表于 2020-10-22 15:48
symbols = '''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN ...
你确定,这样跑起来的是对的?
按这个代码运行:
请输入需要检查的密码组合:1
您的密码安全级别评定为:高
请继续保持
页:
[1]