华为OJ——密码强度等级

该博客介绍了一种密码强度计分系统,根据密码长度、字母、数字和符号的组合来评估其安全性,并将密码分为七个等级,从非常弱到非常安全。文中还提供了输入密码并返回相应安全等级的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

  密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。

  • 一、密码长度:

    5 分: 小于等于4 个字符
    10 分: 5 到7 字符
    25 分: 大于等于8 个字符

  • 二、字母:

    0 分: 没有字母
    10 分: 全都是小(大)写字母
    20 分: 大小写混合字母

  • 三、数字:

    0 分: 没有数字
    10 分: 1 个数字
    20 分: 大于1 个数字

  • 四、符号:

    0 分: 没有符号
    10 分: 1 个符号
    25 分: 大于1 个符号

  • 五、奖励:

    2 分: 字母和数字
    3 分: 字母、数字和符号
    5 分: 大小写字母、数字和符号

  • 最后的评分标准:

    = 90: 非常安全
    = 80: 安全(Secure)
    = 70: 非常强
    = 60: 强(Strong)
    = 50: 一般(Average)
    = 25: 弱(Weak)
    = 0: 非常弱
    对应输出为:
    VERY_WEAK,
    WEAK,
    AVERAGE,
    STRONG,
    VERY_STRONG,
    SECURE,
    VERY_SECURE

    请根据输入的密码字符串,进行安全评定。
    注:
    字母:a-z, A-Z
    数字:-9
    符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)
    !”#$%&’()*+,-./ (ASCII码:x21~0x2F)
    :;<=>?@ (ASCII<=><=><=><=><=>码:x3A~0x40)
    []^_` (ASCII码:x5B~0x60)
    {|}~ (ASCII码:x7B~0x7E)

  • 输入描述:
    输入一个string的密码

  • 输出描述:
    输出密码等级

  • 示例1
    输入
      38$@NoNoNo
    输出
      VERY_SECURE

实现代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值