#Python# 判断密码的安全等级

#Python# 判断密码的安全等级

  • 问题描述
  • 问题分析
  • 代码

问题描述

输入输入一个表示密码的字符串,编写程序判断密码的安全级别为低级密码、中级密码和高级密码。
低级密码要求:
1.密码由单纯的数字或字母组成
2.密码长度小于等于8位
中级密码要求:
1.密码必须由数字、字母或特殊字符(仅限: ~!@#KaTeX parse error: Expected 'EOF', got '#' at position 73: …字母及特殊字符(仅限: ~!@#̲%^&*()_ =/…?<>;:0}1)三种组合
2.密码只能由字母开头
3.密码长度不能低于16位
编写函数判断输入的密码的安全级别,如果为低级密码,则返回"A"; 如果如果为中级密码,则返回"B";如果为高级密码,则返回"C"。

问题分析

拆分问题为:
(1)构建函数ishave(s,limit):判断字符串s中, 是否存在1limit中任意字符,如果存在,返回1,否则返回0;
(2)构建函数typenum(psw):判断psw中存在多少种类别的字符 (类别三种,数字,字母,特殊字符),返回类别的数量;
(3)构建函数safe(psw):判断psw的安全性,返回安全级别对应的字符。

代码

def ishave(s,limit):
    for i in limit:
        if(i in s):
            return 1
    else:
        return 0

def typenum(psw):
    a="1234567890"
    b="abcdefghijklmnopqrstuvwxyz"
    c="~!@#$%^&*()_=-/,.?<>;:[]{}|\\"
    num=ishave(psw,a)+ishave(psw.lower(),b)+ishave(psw,c)
    return num

def safe(psw):
    a="1234567890"
    b="abcdefghijklmnopqrstuvwxyz"
    c="~!@#$%^&*()_=-/,.?<>;:[]{}|\\"
    if((ishave(psw,a) or (ishave(psw.lower(),b))) and len(psw)<=8):
        return 'A'
    elif(typenum(psw)==3 and psw.istitle() and len(psw)>=16):
        return 'C'
    elif(typenum(psw)==3 and len(psw)>=8):
        return 'B'

x=input()
print(safe(x))

你可能感兴趣的:(Python学习笔记)