首页 > 其他分享 >HJ87 密码强度等级

HJ87 密码强度等级

时间:2024-04-09 15:31:16浏览次数:17  
标签:down elif num up char 密码 score HJ87 等级

# HJ87 密码强度等级
def classOfpassword(password):
    num, up_char, down_char, other, score = 0, 0, 0, 0, 0
    srt_data = password.strip()
    for char in srt_data:
        if char.isdigit():    # 判断是否是数字
            num += 1
        elif char.isalpha():    # 判断是否是字母
            if char.upper() == char:
                up_char += 1    # 大写字母
            else:
                down_char += 1    # 小写字母
        else:
            other += 1    # 符号
    # 密码长度
    if len(srt_data) < 5:
        score += 5
    elif len(srt_data) < 8:
        score += 10
    else:
        score += 25
    # 密码大小写
    if up_char == 0 and down_char == 0:
        pass
    elif (up_char != 0 and down_char == 0) or (up_char == 0 and down_char != 0):
        score += 10
    else:
        score += 20
    # 密码数字个数
    if num == 0:
        pass
    elif num == 1:
        score += 10
    else:
        score += 20
    # 符号个数
    if other == 0:
        pass
    elif other == 1:
        score += 10
    else:
        score += 25
    # 奖励
    if num != 0 and (up_char + down_char) != 0 and other == 0:
        score += 2
    elif num != 0 and up_char != 0 and down_char != 0 and other != 0:
        score += 5
    elif num != 0 and (up_char + down_char) != 0 and other != 0:
        score += 3
    if score >= 90:
        return ('VERY_SECURE')
    elif score >= 80:
        return 'SECURE'
    elif score >= 70:
        return 'VERY_STRONG'
    elif score >= 60:
        return 'STRONG'
    elif score >= 50:
        return 'AVERAGE'
    elif score >= 25:
        return 'WEAK'
    else:
        return 'VERY_WEAK'


if __name__ == '__main__':
    inputstr1 = input('Enter a string: ')
    # inputstr2 = input('Enter a string: ')
    # inputnum = int(input('Enter a number: '))
    print(classOfpassword(inputstr1))

标签:down,elif,num,up,char,密码,score,HJ87,等级
From: https://blog.csdn.net/weixin_63566388/article/details/137553991

相关文章

  • 【DVWA】20. SQL Injection (Blind)SQL注入盲注(全等级Sqlmap版)
    文章目录0.盲注介绍0.1布尔盲注0.2时间盲注0.3常用函数if()length()substr()、substring()ascii()、ord()1.Low1.1源码分析1.2实操2.Medium2.1源码分析2.2实操3.High3.1源码分析3.2实操4.Impossible4.1源码分析0.盲注介绍盲注,有两种主要类型,包......
  • python画信封 2024年3月青少年电子学会等级考试 中小学生python编程等级考试一级真题
    目录python画信封一、题目要求二、算法分析三、程序代码四、程序说明五、运行结果六、考点分析七、推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python画信封2024年3月python考级一级真题一、题目要求龙年到了,我们要给远方的亲人写一封新年贺信,请用turtle......
  • 实验一-密码引擎-3-加密API研究--20211313
    不同的加密API研究CryptoAPICryptoAPI功能功能:为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时的标准加密接口。CryptoAPI处于应用程序和CSP(cryptographicserviceprovider)之间。CryptoAPI共有五部分组成:简单消息函数(SimplifiedMessageFunctions)、低层消息......
  • mysql - 忘记密码
    场景初始化步骤执行完,忘记记录控制台展示的密码;程序安装太久,忘记初始密码;docker、swarm等环境,初始步骤失败,导致root账号无法登录。初始化数据库修改my.cnf文件,在mysqlId段落,添加下面这一行,之后不用密码就能登录。修改.cnf文件之后,需要执行servicemysqlrestart......
  • 利用matlab的guide制作一个凯撒密码加解密演示界面
    第一步:在命令行窗口输入guide,回车选择新建gui如图所示,两个粉的是可编辑文本,一个按钮,三个写着字和一个白色的框是静态文本先把我们需要的这些东西都拉出来,数量记得到位,布局自己调粉色什么怎么调就自己探索一下,一般拉出来是白色双击其中一个静态文本,会弹出来一个对话框,......
  • 「Mac」gitlab 更新了登录密码后,本地git仓库拉取推送等无法操作,提示无权限了 —— 解
    ​起因:公司git账户与oa账号关联,oa密码修改了,导致git远程密码修改了,本地的项目再做拉取推送时发现拉取不下来了解决办法:1、查看本地git配置cat.gitconfig2、删除git本地信息nano.gitconfig3、Mac应用程序钥匙串访问,找到对应git项,将其删除4、重新配置一下git邮箱、用......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代......
  • 密码引擎-3-加密API研究
    微软的CryptoAPI资料查询和学习微软公司在NT4.0以上版本中提供了一套完整的CryptoAPI的函数,支持密钥交换,数据加密解密,数字签名,给程序员带来了很大方便,用户在对软件进行保护的时候可以直接利用CryptoAPI来完成这些工作,比如计算注册码,检查程序的完整性等。在用这些API进行加密......