最近在博客中看到许多用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;
}

最后附上一张运行结果:

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

C++实现密码强度测试的更多相关文章

  1. 一个玩具程序——测试密码强度(pure C)

    替人写的C语言作业… 介绍: 程序名称:密码强度检测程序 注释风格:doxygen 测试环境:linux3.6, gcc4.7window7, vs2012 已知问题:1. 算法与参考链接不一致,结果 ...

  2. 如何在nopcommerce3.3注册页面添加密码强度检查仪?

    我刚刚完成了nopCommerce注册页面的密码强度检查仪,因为我觉得在电子商务交易平台,安全问题是非常重要的.在注册页面有必要添加一个密码强度检测仪,以便通知用户他们的密码是否足够强大.今天,大多数 ...

  3. javascript密码强度验证!

    //CharMode函数 //测试某个字符是属于哪一类 function CharMode(iN) { if (iN>=48 && iN <=57) //数字 return ...

  4. js动态判断密码强度&&实用的 jQuery 代码片段

    // 网上拷贝的代码,效果不太好需要自己调整<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  5. 密码强度的js插件(完成)

    效果如下图: 低:

  6. Js判断密码强度并显示提示信息

    用javascipt实现的Ajax判断密码强弱的功能,大多数有用户注册功能的网站,都会有这么一个功能,作为WEB程序员,应该会写这种小模块哦,不懂的就看下这个例子,觉得挺简单,当初帮助了不少人学会了密 ...

  7. mysql 5.6密码强度插件使用

    在mysql 5.6对密码的强度进行了加强,推出了validate_password 插件.支持密码的强度要求. 此插件要求版本:5.6.6 以上版本安装方式: 1.安装插件:(默认安装了插件后,强度 ...

  8. javascript 检测密码强度

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. js实现密码强度验证

    <html> <head> <meta http-equiv="content-type" content="text/html" ...

随机推荐

  1. java 操作FTP

    package comm.ftp; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInput ...

  2. poj3264线段数求最大最小值

    链接:https://vjudge.net/contest/66989#problem/G 完完全全的水题,还是被坑了,一个return忘了写,de了半天bug!! #include<iostr ...

  3. Spring Cloud构建微服务架构(一)服务注册与发现

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁 ...

  4. 在SCIKIT中做PCA 逆运算 -- 新旧特征转换

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  5. (转)html中 cookie设置

    box=="checkBox  '是否记住用户密码'": window.onload=function init() {    var box = getCookie(" ...

  6. DropDownList如何绑定DataTable,如何绑定DataSet

    dpDnUpMenu是我定义的DropDownList控件 如果直接使用下面的方式,则会出现如下错误 dpDnUpMenu.DataSource = menu_tbBll.GetPID() dpDnU ...

  7. Telegram学习解析系列(三) : Build Telegram报错分析总结

    正好通过这次 Telegram 的运行,很想把常见的项目运行的错误好好的总结一下,在前面的博客中,又星星散散的总结过错误和一些警告的消除方法,这次把错误处理一下,还有Telegram项目中有999+的 ...

  8. How To Configure VMware fencing using fence_vmware_soap in RHEL High Availability Add On(RHEL Pacemaker中配置STONITH)

    本文主要简单介绍一下如何在RHEL 7 Pacemaker中配置一个fence_vmware_soap类型的STONITH设备(仅供测试学习). STONITH是Shoot-The-Other-Nod ...

  9. JS 浏览器cookie的设置,读取,删除

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...

  10. 入坑以来最清晰的this指南[老哥们来交流指正]

    直接放有道云笔记的链接,博客园的markdown总是用不好. 1.这一篇是this的绑定(call,apply,bind) http://note.youdao.com/noteshare?id=c3 ...