本文实例为大家分享了C语言实现密码强度检测,供大家参考,具体内容如下
1 方案得分项
一、密码长度:
公式 :+(n*4),其中n表示密码长度
二、大写字母:
公式:+((len-n)*2),其中n表示大写字母个数,len表示密码长度
三、小写字母:
公式:+((len-n)*2),其中n表示小写字母个数,len表示密码长度
四、数字:
公式:+(n*4),其中n表示数字个数 条件:满足n < len,才能得到加分,len表示密码长度五、符号:
公式:+(n*6),其中n表示符号个数
六、位于中间的数字或符号:
公式:+(n*2),其中n表示位于中间的数字或符号个数
七、最低条件得分:
公式:+(n*2),其中n表示满足的最低条件条目数 条件:只有满足最低条件,才能得到加分其中最低条件的条目如下:
1.密码长度不小于8位
2.包含大写字母
3.包含小写字母
4.包含数字
5.包含符号
最低条件要求满足条目1并至少满足条目2-5中的任意三条。
2 方案减分项
一、只有字母:
公式:-n,其中n表示字母个数
二、只有数字:
公式:-n,其中n表示数字个数
三、重复字符数(大小写敏感):
该项描述复杂,具体计算方法见如下示例程序:

四、连续大写字母:
公式:-(n*2),其中n表示连续大写字母出现的次数 举例:如输入AUB,则n=2五、连续小写字母:
公式:-(n*2),其中n表示连续小写字母出现的次数 举例:如输入aub,则n=2六、连续数字:
公式:-(n*2),其中n表示连续数字出现的次数 举例:如输入381,则n=2七、正序或逆序字母:
公式:-(n*3),其中n表示连续发生的次数
正序或逆序是指字母表中的顺序 不区分大小写条件:只有连续3个字母或以上,才会减分,
例1:如输入ABC,则n=1
例2:如输入dcBA,则n=2
八、正序或逆序数字:
公式:-(n*3),其中n表示连续发生的次数 条件:只有连续3个数字或以上,才会减分 例1:如输入123,则n=1, 例2:如输入4321,则n=2 例3:如输入12,则不会减分九、正序或逆序符号:
公式:-(n*3),其中n表示连续发生的次数 条件:只有连续3个符号或以上,才会减分3 方案等级划分
根据密码评分,将密码划分成以下5个等级:
>= 80: 非常强(VERY_STRONG)
>= 60: 强(STRONG)
>= 40: 好(GOOD)
>= 20: 弱(WEAK)
>= 0: 非常弱( VERY_WEAK)










