<验证码的产生>C语言---验证码的产生和验证
2016-07-23 20:09
288 查看
登录时产生验证码的问题。首先产生随机数,然后让产生的随机数做为字符库(提前做好的数字字母字符串)的下标,就这样从字符库中随机提取出组成的小字符串就是最简单的字符串了,当然你可以自己创建字符库的内容。
以下是用C语言编写产生验证码和验证验证码的过程的代码:
还有一种直接调用库函数的,比上面的写的代码还简单点,有兴趣的码友可以参考一下。
rand()函数需要的C语言头文件为 stdlib.h, c++的为 algorithm,当然也可以写cstdlib。它不需要参数就可以产生随机数。
欢迎码友评论,我会不断的修改使其变得完美,谢谢支持。
以下是用C语言编写产生验证码和验证验证码的过程的代码:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #define N 5 void identifying_Code (char str[],int n) { int i,j,len; char pstr[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJLMNOPQRSTUVWXYZ"; len = strlen(pstr); //求字符串pstr的长度 srand(time(0)); for (i = 0;i < n; i++) { j = rand()%len; //生成0~len-1的随机数 str[i] = pstr[j]; } str[i] = '\0'; } int main() { int n = 3; int flag = 0; char code[N+1],str[N+1]; while (n) { identifying_Code (code,N); printf("请输入验证码<您还剩%d机会>:%s\n",n,code); scanf("%s",str); n--; if(strcmp(code,str) == 0) { //区分大小写的验证码 n = 0; flag = 1; printf("验证正确.\n"); } } if (flag == 0) printf("对不起,您的账号已锁定.\n"); return 0; }
还有一种直接调用库函数的,比上面的写的代码还简单点,有兴趣的码友可以参考一下。
#include <cstdio> #include <ctime> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int main () { int m, n; srand (time (NULL));//初始化 n = rand() % 100; //生成两位数的随机数 cout << n << endl; return 0; }
rand()函数需要的C语言头文件为 stdlib.h, c++的为 algorithm,当然也可以写cstdlib。它不需要参数就可以产生随机数。
欢迎码友评论,我会不断的修改使其变得完美,谢谢支持。
相关文章推荐
- 搜索练习(二)工作效益
- 搜索练习(一)细胞
- C++重载函数的实现小结(实战篇)
- poj3278 Catch That Cow
- 重构
- DCT变换编码及C语言实现
- 【技巧】简单理解快速幂(求模)
- C++基础:文件与对象
- C++基础:文件读写
- C++基础:输入输出的格式控制
- C++基础:纯虚函数
- Leetcode 257. Binary Tree Paths (Easy) (cpp)
- C++基础:多态的实现原理分析
- C++基础:多态和虚函数的使用
- C++ OO Programming (1)
- Leetcode 112. Path Sum (Easy) (cpp)
- C++基础:同名隐藏与赋值兼容规则
- C++基础:钻石继承与虚基类
- cpp p55--使用转义字符(mac上无法正常运行)
- cpp p47--altnames.c -- ?可移植的整数类型名