c验证码识别源码
① 用c语言编写验证码
个人觉得,提问者的难点应该是在随机生成4个汉字,至于验证什么的应该不是问题。
4个汉字其实就是8个字节,主要是得搞清楚汉字是扩展ascii嘛的取值范围,然后用随机函数生成这个范围的值就OK了。
② 急求!1急求!!用c语言实现类似网页验证码的算法。拜托啦!!!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intisright()
{
inti,input,letter,flag=0;
intt[4],num,upper,lower;
chara,b,c,d;
//随机数产生
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
{
input=rand()%3;//验证码可能为:数字、大写字母、小写字母
if(input==0){num=rand()%10+48;printf("%c",num);t[i]=num;}//数字
letter=rand()%26;
if(input==1)//大写字母
{upper=letter+65;printf("%c",upper);t[i]=upper;}
if(input==2)//小写字母
{lower=letter+97;printf("%c",lower);t[i]=lower;}
}
printf(" ");
//for(i=0;i<4;i++)
//printf("%c",t[i]);
scanf("%c%c%c%c",&a,&b,&c,&d);//输入验证码
if(a==t[0]&&b==t[1]&&c==t[2]&&d==t[3])
printf("验证码正确 ");//验证码匹配
else{printf("验证码错误 ");flag=1;}
returnflag;//错误则返回1,正确返回0
}
main()
{
intsum=0,i,error;
for(i=0;;i++)
{
error=isright();
sum=sum+error;//统计错误次数
if(sum==3){printf("输入次数达上限! ");break;}//错误3次,程序结束
}
}
③ C语言识别验证码
用PHP或ASP应该可以识别,C语言网上的资料是少的可怜。换种思路就好了
④ c#, 网页验证码, 汉字计算逻辑验证码源码。
定义a,b,c
随机生成a,b
判断a
>=b?c=1:c=-1
session["c"]=a+(b*c);
string
str=a.ToString()+(c>0?"加":"减")+b.ToString()+"=?";
然后把str画出图片
至于将字符串画到图像里
你自己去
网络吧
⑤ 如何用c语言实现验证码的校验
什么校验方法?
CRC检验如下:
#include<stdio.h>
int binaryToDec(char *str)
{
unsigned n=0;
while(*str!='\0')
{
if(*str<'0'||*str>'9')return -1;
n=n*2+(*str-'0');
str++;
}
return n;
}
void printBinary(int n)
{
if(n>1)printBinary(n/2);
printf("%d",n%2);
}
void main()
{
unsigned n,m,CRC=0x1A8000,fD=0x100000;
char CRC16[32];
while(1)
{
printf("输入16位校验码:");
gets(CRC16);
n=binaryToDec(CRC16);
if(n>65535)
printf("输入值过长,请重新输入\n");
else break;
}
n<<=5;//n左移5位
m=n;//m等于n
while(fD>0x20)
{
while( !(m&fD) && !(CRC&1) )//保证被除数第一位为1
{
CRC>>=1;//除数右移一位
fD>>=1;//被除数首位的标志位右移一位
}
m=m^CRC;//被除数与除数相异或
}
n+=m;//模二余数相加
printf("输出21位校验码:");
printBinary(n);
printf("\n");
getchar();
}
⑥ 我想实现一个简单的验证码验证,请问如何在javascript中使用EL表达式
把这个session的值读到html里面即可
比如:
var x=<c:out value="${验证码session名}" />;
然后再把x和用户输入的验证码比较
--------
问题是你这样的做法完全忽视了验证码的本质,为什么存在图片验证码,而不是在html中显示文字验证码呢?就是怕被别人获取源代码识别验证码,而识别图片就要难一些。
因此你这样的做法欠妥。
⑦ 如何利用python做简单的验证码识别
1摘要
验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的防火墙功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一套字符验证码识别的完整流程,对于验证码安全和OCR识别技术都有一定的借鉴意义。
然后经过了一年的时间,笔者又研究和get到了一种更强大的基于CNN卷积神经网络的直接端到端的验证识别技术(文章不是我的,然后我把源码整理了下,介绍和源码在这里面):
基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
2关键词
关键词:安全,字符图片,验证码识别,OCR,Python,SVM,PIL
3免责声明
本文研究所用素材来自于某旧Web框架的网站完全对外公开的公共图片资源。
本文只做了该网站对外公开的公共图片资源进行了爬取,并未越权做任何多余操作。
本文在书写相关报告的时候已经隐去漏洞网站的身份信息。
本文作者已经通知网站相关人员此系统漏洞,并积极向新系统转移。
本报告的主要目的也仅是用于OCR交流学习和引起大家对验证安全的警觉。
4引言
关于验证码的非技术部分的介绍,可以参考以前写的一篇科普类的文章:
互联网安全防火墙(1)--网络验证码的科普
里面对验证码的种类,使用场景,作用,主要的识别技术等等进行了讲解,然而并没有涉及到任何技术内容。本章内容则作为它的技术补充来给出相应的识别的解决方案,让读者对验证码的功能及安全性问题有更深刻的认识。
5基本工具
要达到本文的目的,只需要简单的编程知识即可,因为现在的机器学习领域的蓬勃发展,已经有很多封装好的开源解决方案来进行机器学习。普通程序员已经不需要了解复杂的数学原理,即可以实现对这些工具的应用了。
主要开发环境:
python3.5
python SDK版本
PIL
图片处理库
libsvm
开源的svm机器学习库
准备原始图片素材
图片预处理
图片字符切割
图片尺寸归一化
图片字符标记
字符图片特征提取
生成特征和标记对应的训练数据集
训练特征标记数据生成识别模型
使用识别模型预测新的未知图片集
达到根据“图片”就能返回识别正确的字符集的目标
- def get_feature(img): """
- 获取指定图片的特征值,
- 1. 按照每排的像素点,高度为10,则有10个维度,然后为6列,总共16个维度
- :param img_path:
- :return:一个维度为10(高度)的列表 """
- width, height = img.size
- pixel_cnt_list = []
- height = 10 for y in range(height):
- pix_cnt_x = 0 for x in range(width): if img.getpixel((x, y)) == 0: # 黑色点
- pix_cnt_x += 1
- pixel_cnt_list.append(pix_cnt_x) for x in range(width):
- pix_cnt_y = 0 for y in range(height): if img.getpixel((x, y)) == 0: # 黑色点
- pix_cnt_y += 1
- pixel_cnt_list.append(pix_cnt_y) return pixel_cnt_list
关于环境的安装,不是本文的重点,故略去。
6基本流程
一般情况下,对于字符型验证码的识别流程如下:
7素材准备
7.1素材选择
由于本文是以初级的学习研究目的为主,要求“有代表性,但又不会太难”,所以就直接在网上找个比较有代表性的简单的字符型验证码(感觉像在找漏洞一样)。
最后在一个比较旧的网站(估计是几十年前的网站框架)找到了这个验证码图片。
原始图:
然后就将图片素材特征化,按照libSVM指定的格式生成一组带特征值和标记值的向量文
⑧ 请问C语言验证码代码怎么打
用strcmp函数比较两个字符串,你上图一个生成的字符串,另一个输入的字符串,把这两个传递到函数里,函数返回0就说明两个字符串相等,输入正确,反之输入错误。(头文件导入string.h)。
⑨ 怎样实现输入验证码呢要用C语言的
#include <stdio.h>
#include <string.h>
main()
{
char a[15],i=3;
do{
printf("Password:");
gets(a);
if(strcmp(a,"hello")==0) break;//这里请连到你的密码文件或者是连接到数据库验证,这里是 hello
}while(--i);
if(i==0) printf("Input errer 3 num.System close!\n");
else
{
//这里写入你密码正确要执行的代码
}
}