标签:
无论在网页还是软件上登录时候都会遇到验证码的问题,不知道不懂其中奥秘的码友有没有兴趣一起来探讨一下。
其实并没有什么奥秘可言,就是产生随机数,然后让产生的随机数做为字符库(提前做好的数字字母字符串)的下标,就这样从字符库中随机提取出组成的小字符串就是最简单的字符串了,当然你可以自己创建字符库的内容。
以下是用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; }
欢迎码友评论,我会不断的修改使其变得完美,谢谢支持。
标签:
原文地址:http://www.cnblogs.com/Ddlm2wxm/p/5699429.html