鱼C论坛

 找回密码
 立即注册
查看: 1467|回复: 2

[已解决]字符串 密码检测

[复制链接]
发表于 2021-9-28 20:06:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
symbol = r"""  ~!@#$%^&*()_=-/,.?<>;:[]{}|\  """

numbers='0123456789'
sum_ =0
warn = """
          请按以下方式提升您的密码安全级别:
                   1. 密码必须由数字、字母、及特殊字符三种组合
                   2. 密码只能由字母开头
                   3. 密码长度不能低于16位"""
while True:
    passwds = input('请输入需要检查密码组合:')


    if len(passwds) <= 8:
        print("您的密码安全级别评定为:低")
        print(warn)
      
    elif 16 >len(passwds) > 8:
        
        print("您的密码安全级别评定为:中")
        print(warn)

            
    elif len(passwds) > 16:
        #首字母判断
        if passwds[0].isalpha()==True:
            for i in range(1):
                
                for n in passwds:
                    if numbers.find(n) !=-1:
                        sum_ +=1
            for i in range(1):   
                 for each in passwds:
                     if symbol.find(each)!=-1:
                        sum_ +=1
        if sum_==2:
            
            print("您的密码安全级别评定为:高")
            print("请继续保持")
        else:
            print("您的密码安全级别评定为:中")
            print(warn)


       
    
            
    
        


求教  1.     这个程序在 if passwds[0].isalpha()==True: 的时候没有发挥作用,只在满足16位以上和特殊字符串后就判断了,我按数字开头也被安全等级也被评为高,怎么回事呢?明明应该先判断是否是字母开头后才对后面的步骤进行判断的
        2.     sum_ 想如果出现过数字和特殊符号就加一次 sum_==2的时候说明满足了3种组合都满足,但打印出sum_的总数是把密码里所有出现的数字和特殊符号都计算了一次
        怎么改才能按我的这个思路,把程序运行下去,谢谢
最佳答案
2021-9-28 21:14:07
帮你修改了。
symbol = r"""  ~!@#$%^&*()_=-/,.?<>;:[]{}|\  """

numbers='0123456789'

warn = """
          请按以下方式提升您的密码安全级别:
                   1. 密码必须由数字、字母、及特殊字符三种组合
                   2. 密码只能由字母开头
                   3. 密码长度不能低于16位"""
while True:
    sum_ =0
    print(warn)
    passwds = input('请输入需要检查密码组合:')
    #首字母判断
    if passwds[0].isalpha()==True:

        if len(passwds) <= 8:
            print("您的密码安全级别评定为:低")
            
          
        elif len(passwds) < 16:
            
            print("您的密码安全级别评定为:中")


              
        else:

            for n in passwds:
                if numbers.find(n) !=-1:
                    sum_ +=1
                    break
            for each in passwds:
             if symbol.find(each)!=-1:
                sum_ +=1
                break
            if sum_==2:
                
                print("您的密码安全级别评定为:高")
                print("请继续保持")
            else:
                print("您的密码安全级别评定为:中")
    else:
        print('密码只能由字母开头')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-28 21:14:07 | 显示全部楼层    本楼为最佳答案   
帮你修改了。
symbol = r"""  ~!@#$%^&*()_=-/,.?<>;:[]{}|\  """

numbers='0123456789'

warn = """
          请按以下方式提升您的密码安全级别:
                   1. 密码必须由数字、字母、及特殊字符三种组合
                   2. 密码只能由字母开头
                   3. 密码长度不能低于16位"""
while True:
    sum_ =0
    print(warn)
    passwds = input('请输入需要检查密码组合:')
    #首字母判断
    if passwds[0].isalpha()==True:

        if len(passwds) <= 8:
            print("您的密码安全级别评定为:低")
            
          
        elif len(passwds) < 16:
            
            print("您的密码安全级别评定为:中")


              
        else:

            for n in passwds:
                if numbers.find(n) !=-1:
                    sum_ +=1
                    break
            for each in passwds:
             if symbol.find(each)!=-1:
                sum_ +=1
                break
            if sum_==2:
                
                print("您的密码安全级别评定为:高")
                print("请继续保持")
            else:
                print("您的密码安全级别评定为:中")
    else:
        print('密码只能由字母开头')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-28 22:07:15 | 显示全部楼层

清晰了好多,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表