C++实现密码强度测试
2018-06-17 22:25:36来源:未知 阅读 ()
最近在博客中看到许多用js写的密码强度检测,我觉得挺有意思的,所以呢我打算自己也写个来玩玩,最可悲的是我还没学js,当然这不重要,所以呢打算用C++来写一个密码强度检测,这里我来给大家说说用JS写的和用C++写的不同之处
JS写的密码强度检测:当你输入一串>=6 位数的时候 他后面会自动弹出密码的强度 ,还有你再继续输入然后他后面的密码强度会更换 (当然我也尝试解决过这个问题,写出来就一直只能输入6位数,由于我技术有限,如果大家自己能写出来的话可以去试试);
C++写的密码强度检测:当你输入一串>=6位数的时候 你要按下回车才能将字符串读入内存中,这样相比往往更JS还是有一定的差距的。
接下来我们就来看下这密码强度检测的规则吧;
* 1) 任何在1-6之间的字符的组合,弱;例如: win
* 2) 任何字符数的两类字符组合,中; 例如: win123
* 3) 12位字符数以下的三类或四类字符组合,强; 例如: win123abcABC
* 4) 12位字符数以上的三类或四类字符组合,非常好。 例如:win123abcABC!
思路:写个子函数然后遍历查找字符串大写和小写还有数字等其他字符是否存在,这里记住了如果存在某个字符只计数一次。然后再返回给主函数,主函数主要判断密码又几类字符组成然后再按相应的数输出密码强度;
下面是代码:
1 #include <iostream> 2 #include <cstring> 3 #include <cctype> 4 using namespace std; 5 int fun(char password[]); 6 int main(int argc, char* argv[]) 7 { 8 int i; 9 char password[16]; 10 stop:cout<<"Password:";gets(password); 11 while(strlen(password)>=6&&strlen(password)<=16){ 12 switch(fun(password)) 13 { 14 case 1:cout<<"弱 ★"<<endl;break; 15 case 2:cout<<"中 ★ ★"<<endl;break; 16 case 3:cout<<"强 ★ ★ ★"<<endl;break; 17 case 4:cout<<"非常好 ★ ★ ★ ★"<<endl;break; 18 }cout<< "Password:";gets(password); 19 } 20 cout<<"密码最少6~16位 请重新输入:"<<endl;goto stop; 21 return 0; 22 } 23 int fun(char password[]) 24 { 25 int i,count=0,a=1,b=1,c=1; 26 27 for(i=0;i<strlen(password);i++) 28 if(a&&islower(password[i])) count++,a=0; 29 else if(b&&isupper(password[i])) count++,b=0; 30 else if(c&&isdigit(password[i])) count++,c=0; 31 else if(!islower(password[i])&&!isupper(password[i])&&!isdigit(password[i])) count++; 32 return count; 33 }
最后附上一张运行结果:
PS:如果大家还有更好的思路也可以自己写写试试,最后谢谢大家的阅读。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash