初学python 密码安全性检查

本文介绍了一个用于检查密码安全级别的Python程序。该程序能够评估密码强度并将其分为低级、中级和高级三个等级,依据密码的长度、组成元素(如字母、数字、特殊字符)以及是否以字母开头等标准。

根据小甲鱼论坛习题

供回顾复习

#Author Vjack

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>''' #在''' 前面加上r 的含义是为了防止被转义  疑问:为什么在特殊字符前面 加'''  而不是'

chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

nums = '0123456789'

passwd = input('请输入需要检查的密码:')

#判断长度

length = len(passwd)

#判断输入的是否是密码

while ( passwd.isspace() or length ==0 ):#isspace 是检测字符串是否只由空格组成,若只包含空格返回ture  记得加:

    passwd = input('您输入的密码为空(或空格),请重新输入:')

#先判断长度,并用flag_len 代替

 if length <= 8:

    flag_len = 1

elif 8 < length < 16:

    flag_len = 2

else:

    flag_len = 3


#因为在判断是否为高级密码时它有一个要求是:第一个必须是字母,所以加一个判断:先取出passwd的第一个字符串判断是否在chars 中 即可,用的是字符串对象的fing()方法参考网址https://www.cnblogs.com/johnson-yuan/p/7910087.html址https://www.cnblogs.com/johnson-yuan/p/7910087.html         有更好的方法欢迎指教

 a = passwd [:1]

result =chars.find(a) >= 0  #在最后判断的时候是否是高级密码时加上result,只有当result为true时才是。

#接下来判断存在字母,特殊字符,数字类型有几种

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='')#为什么要加end  草稿有解答。

    if flag_len == 1 or flag_con == 1:

        print('低')#当程序输出为低级和中级时会执行下面的一个print,提醒你改进方法,在break


    elif flag_len ==2 and flag_con >=2: # 用and 两个条件都满足才是中级

        print('中')

    

elif flag_len ==3 and flag_con ==3 and result:
    print('高')
    break#这儿已经跳出了循环,也不再执行下面的print
else:
    print('中')#这我想的是一种情况它不满足高级密码必须字母开头,但它有三种类型,大于16位,就输出中级密码

    print('请按以下方式进行提升1....2....3.....')#注意这一行的对齐,没有跟while对齐
    break
#这条件有点问题啊,高级密码要是没有字母开头怎么办,输出中级密码?
#还有一个注意的就是在if elif else 中else后面不能再添其他条件,要添只能在elif后面

    #在pycharm 跑了一遍发现了几个需要注意的问题

1.有时候粘贴过去的它不能run,可能是没对齐

2.上面提到的 else 后面不能在加条件,要加在elif后面加

  

#原题目

1.  # 密码安全性检查代码

2.  #

3.  # 低级密码要求:

4.  #  1. 密码由单纯的数字或字母组成

5.  #  2. 密码长度小于等于8

6.  #

7.  # 中级密码要求:

8.  #  1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合

9.  #  2. 密码长度不能低于8

10. #

11. # 高级密码要求:

12. #   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合

13. #   2. 密码只能由字母开头

14. #   3. 密码长度不能低于16








打开链接下载源码: https://pan.quark.cn/s/8ec3d104bde6 华为MA5671是一款针对宽带接入需求而研发的智能型光猫设备,其核心应用场景为家庭用户及小型企业环境。该设备运用了千兆以太网技术,能够提供卓越的网络连接性能,从而使用户可以体验到稳定流畅的互联网服务。其完整名称为SmartAX MA5671,其中"SmartAX"是华为对其智能接入产品系列的特定命名,意指该设备具备智能化管理功能与自动化配置特性。固件,即Firmware,是指存储于硬件设备内部的一套程序代码,负责控制设备的各项功能运作并合理调配硬件资源。在华为MA5671设备中,固件发挥着核心作用,它直接影响着设备的操作系统运行机制、网络协议兼容性、安全防护机制以及性能表现等多个维度。"MA5671V8R313C00SPC100"作为该固件的标识编号,通过此代码可以解析出以下几个关键层面的信息: 1. **V8**:这通常象征固件的主版本号,或许表明这是第8代产品形态或第8次主要升级迭代。 2. **R313**:这可能代表固件的次级版本或修订层级,暗示着相较于V8版本,该版本经历了313次的迭代优化。 3. **C00**:这部分或许与设备的特定型号设定或地域适配性相关,不同的C00编码可能对应不同的功能模块配置或区域适应性调整。 4. **SPC100**:最后的这一段编码可能标识着特殊版本或性能增强配置,SPC(Special Performance Configuration)可能是华为针对特定性能优化版本设定的代号,而100可能代表这种优化措施的等级或序列编号。 在实际部署过程中,将固件保持为最新版本是非常重要的,这样做能够有效修正已知的安全隐患,优化设备运作效能,...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值