b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

c验证码识别源码(c# 验证码)

hacker2022-07-11 22:12:24热点问题90
本文目录一览:1、如何用c语言实现验证码的校验?2、

本文目录一览:

如何用c语言实现验证码的校验?

什么校验方法?

CRC检验如下:

#includestdio.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(n1)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(n65535)

printf("输入值过长,请重新输入\n");

else break;

}

n=5;//n左移5位

m=n;//m等于n

while(fD0x20)

{

while( !(mfD) !(CRC1) )//保证被除数第一位为1

{

CRC=1;//除数右移一位

fD=1;//被除数首位的标志位右移一位

}

m=m^CRC;//被除数与除数相异或

}

n+=m;//模二余数相加

printf("输出21位校验码:");

printBinary(n);

printf("\n");

getchar();

}

求:无论c/c++或java或js实现自动打开网页完成输入用户名密码并正确提交的源码

如果没有验证码的话,写一个HTTP客户端就可以了,其实浏览器就是一个带有图形界面的HTTP客户端。至于有验证码的情况,也有库可以识别,但是做好签到不成功的准备

求12306验证码识别源码(c#)!谢谢!

识别验证码?留名学习....总不能从orc的角度出发吧。 还是说有隐藏的cookie存储

请问C语言验证码代码怎么打?

用strcmp函数比较两个字符串,你上图一个生成的字符串,另一个输入的字符串,把这两个传递到函数里,函数返回0就说明两个字符串相等,输入正确,反之输入错误。(头文件导入string.h)。

在C#中编写验证码的代码是什么?

推荐用一些第三方控件,百度一下有很多,不过你问了,我也贴一段代码给你:

using System;

using System.IO;

using System.Drawing;

using System.Drawing.Imaging;

using System.Web;

using System.Web.SessionState;

namespace Test.Web.Tools

{

/// summary

/// 验证码生成类

/// /summary

public class VerifyCodeImage : IHttpHandler, IRequiresSessionState

{

public void ProcessRequest(HttpContext context)

{

int codeW = 80;

int codeH = 22;

int fontSize = 16;

string chkCode = string.Empty;

//颜色列表,用于验证码、噪线、噪点

Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };

//字体列表,用于验证码

string[] font = { "Times New Roman", "Verdana", "Arial", "Gungsuh", "Impact" };

//验证码的字符集,去掉了一些容易混淆的字符

char[] character = { '2', '3', '4', '5', '6', '8', '9', 'a', 'b', 'd', 'e', 'f', 'h', 'k', 'm', 'n', 'r', 'x', 'y', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };

Random rnd = new Random();

//生成验证码字符串

for (int i = 0; i 4; i++)

{

chkCode += character[rnd.Next(character.Length)];

}

//写入Session

context.Session["DtCode"] = chkCode;

//创建画布

Bitmap bmp = new Bitmap(codeW, codeH);

Graphics g = Graphics.FromImage(bmp);

g.Clear(Color.White);

//画噪线

for (int i = 0; i 10; i++)

{

int x1 = rnd.Next(codeW);

int y1 = rnd.Next(codeH);

int x2 = rnd.Next(codeW);

int y2 = rnd.Next(codeH);

Color clr = color[rnd.Next(color.Length)];

g.DrawLine(new Pen(clr), x1, y1, x2, y2);

}

//画验证码字符串

for (int i = 0; i chkCode.Length; i++)

{

string fnt = font[rnd.Next(font.Length)];

Font ft = new Font(fnt, fontSize);

Color clr = color[rnd.Next(color.Length)];

g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 18 + 2, (float)0);

}

//画噪点

for (int i = 0; i 100; i++)

{

int x = rnd.Next(bmp.Width);

int y = rnd.Next(bmp.Height);

Color clr = color[rnd.Next(color.Length)];

bmp.SetPixel(x, y, clr);

}

//清除该页输出缓存,设置该页无缓存

context.Response.Buffer = true;

context.Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);

context.Response.Expires = 0;

context.Response.CacheControl = "no-cache";

context.Response.AppendHeader("Pragma", "No-Cache");

//将验证码图片写入内存流,并将其以 "image/Png" 格式输出

MemoryStream ms = new MemoryStream();

try

{

bmp.Save(ms, ImageFormat.Png);

context.Response.ClearContent();

context.Response.ContentType = "image/Png";

context.Response.BinaryWrite(ms.ToArray());

}

finally

{

//显式释放资源

bmp.Dispose();

g.Dispose();

}

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

以上代码是一个ashx文件的cs代码,这可以绘制一个验证码

发表评论

评论列表

  • 辞眸里予(2022-07-12 00:23:30)回复取消回复

    int x = rnd.Next(bmp.Width); int y = rnd.Next(bmp.Height); Color clr = colo

  • 笙沉二奴(2022-07-12 06:48:05)回复取消回复

    .Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue }; //字体列表,用于验证码

  • 莣萳做啡(2022-07-12 02:43:07)回复取消回复

    l(x, y, clr); } //清除该页输出缓存,设置该页无缓存 context.Response.Buffer = true; context.Response.ExpiresAbsol