首页 技术 正文
技术 2022年11月16日
0 收藏 542 点赞 2,204 浏览 1332 个字

最近在博客中看到许多用js写的密码强度检测,我觉得挺有意思的,所以呢我打算自己也写个来玩玩,最可悲的是我还没学js,当然这不重要,所以呢打算用C++来写一个密码强度检测,这里我来给大家说说用JS写的和用C++写的不同之处

JS写的密码强度检测:当你输入一串>=6 位数的时候 他后面会自动弹出密码的强度 ,还有你再继续输入然后他后面的密码强度会更换 (当然我也尝试解决过这个问题,写出来就一直只能输入6位数,由于我技术有限,如果大家自己能写出来的话可以去试试);

C++写的密码强度检测:当你输入一串>=6位数的时候 你要按下回车才能将字符串读入内存中,这样相比往往更JS还是有一定的差距的。

接下来我们就来看下这密码强度检测的规则吧;

* 1) 任何在1-6之间的字符的组合,弱;例如: win
* 2) 任何字符数的两类字符组合,中; 例如: win123
* 3) 12位字符数以下的三类或四类字符组合,强; 例如: win123abcABC
* 4) 12位字符数以上的三类或四类字符组合,非常好。 例如:win123abcABC!

思路:写个子函数然后遍历查找字符串大写小写还有数字其他字符是否存在,这里记住了如果存在某个字符只计数一次。然后再返回给主函数,主函数主要判断密码又几类字符组成然后再按相应的数输出密码强度;

下面是代码:

 #include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
int fun(char password[]);
int main(int argc, char* argv[])
{
int i;
char password[];
stop:cout<<"Password:";gets(password);
while(strlen(password)>=&&strlen(password)<=){
switch(fun(password))
{
case :cout<<"弱 ★"<<endl;break;
case :cout<<"中 ★ ★"<<endl;break;
case :cout<<"强 ★ ★ ★"<<endl;break;
case :cout<<"非常好 ★ ★ ★ ★"<<endl;break;
}cout<< "Password:";gets(password);
}
cout<<"密码最少6~16位 请重新输入:"<<endl;goto stop;
return ;
}
int fun(char password[])
{
int i,count=,a=,b=,c=; for(i=;i<strlen(password);i++)
if(a&&islower(password[i])) count++,a=;
else if(b&&isupper(password[i])) count++,b=;
else if(c&&isdigit(password[i])) count++,c=;
else if(!islower(password[i])&&!isupper(password[i])&&!isdigit(password[i])) count++;
return count;
}

最后附上一张运行结果:C++实现密码强度测试

PS:如果大家还有更好的思路也可以自己写写试试,最后谢谢大家的阅读。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,983
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,500
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,344
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,127
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,761
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,838