vb怎样获取vb.net 验证码识别?

在vb中怎么实现验证码的功能
在vb中怎么实现验证码的功能
09-12-29 &
代码自己考到编译器中登陆界面index.jsp&%@page contentType=&text/charset=GBK&%&&br&&html&&br&&head&&br&&title&用户登录&/title&&br&&/head&&body&&div align=&center&&&!-- 登录表单 --&&br&&h1&&font color=&#FF0000&&&strong&登录&/strong&&/font&&/h1&&br&&form name=&form& method=&post& action=&login.jsp&&&br&&table&&br& &tr&&br&  &td align=&right&&&strong&姓名:&/strong&&/td&&br&  &td&&input type=&text& name=&username&&&/td&&br& &/tr&&br& &tr&&br&  &td align=&right&&&strong&密码:&/strong&&/td&&br&  &td&&input type=&password& name=&password&&&/td&&br& &/tr&&br& &tr&&br&  &td align=&right&&&strong&随机验证码:&/strong&&/td&&br&  &td&&input type=&text& name=&validatingString& size=&10&&&&img&br&   src=&randomImage.jsp& align=&top&/&&/td&&br& &/tr&&br& &tr&&br&  &td colspan=&2& align=&center&&&input type=&submit& name=&Submit&&br&   value=&提交&& & & &input type=&reset& name=&reset&&br&   value=&重置&&&/td&&br& &/tr&&br&&/table&&br&&/form&&br&&/div&&/body&&br&&/html&  其中randomImage.jsp是产生验证码的,代码如下&%@ page contentType=&image/charset=GBK&%&&br&&%@ page import=&java.awt.*&%&&br&&%@ page import=&java.awt.image.*&%&&br&&%@ page import=&java.util.*&%&&br&&%@ page import=&javax.imageio.*&%&&!-- 在指定的数值范围内生成一种随机色 --&&br&&%!Color getRandColor(int lower, int upper) {&br&  //创建随机数类变量&br&  Random random = new Random();  //防止数值范围出界&br&  lower = (lower & 0 || lower & 255) ? 0 :&br&  upper = (upper & 0 || upper & 255) ? 0 :  //生成红绿蓝三种基本色的随机数值&br&  int r = lower + random.nextInt(upper - lower);&br&  int g = lower + random.nextInt(upper - lower);&br&  int b = lower + random.nextInt(upper - lower);  //返回生成的随机色&br&  return new Color(r, g, b);&br& }%&&%&br& //图片的初始大小&br& int width = 60;&br& int height = 20; //创建缓冲图片&br& BufferedImage image = new BufferedImage(width, height,&br&   BufferedImage.TYPE_INT_RGB); //获取缓冲图片的绘图类变量&br& Graphics g = image.getGraphics(); //设置前景色(为较亮的一种随机色)&br& g.setColor(getRandColor(200, 255)); //使用该色填充背景&br& g.fillRect(0, 0, width, height); //创建随机数类变量&br& Random random = new Random(); //产生100条具有随机位置、随机长度和随机颜色的干扰直线,使图象中的认证码不易被其它程序识别出来 &br& for (int i = 0; i & 100; i++) {&br&  //设置前景色(为灰度中等的一种随机色)&br&  g.setColor(getRandColor(150, 200));  //获取随机位置&br&  int x1 = random.nextInt(width);&br&  int y1 = random.nextInt(height);  //获取随机长度&br&  int x2 = random.nextInt(10);&br&  int y2 = random.nextInt(10);  //绘制直线&br&  g.drawLine(x1, y1, x1 + x2, y1 + y2);&br& } //设定字体&br& g.setFont(new Font(&Times New Roman&, Font.PLAIN, 18)); //获取之间的四位随机整数&br& int randomInt = 1000 + random.nextInt(9000); //转换为字符串&br& String randomStr = String.valueOf(randomInt); //循环遍历字符串每个字符&br& for (int i = 0; i & randomStr.length(); i++) {&br&  //设置前景色(为较暗的一种随机色)&br&  g.setColor(getRandColor(0, 100));  //显示一个字符&br&  g.drawString(randomStr.substring(i, i + 1), 10 * i + 10, 15);&br& } // 将随机数存储在会话属性中,便于其他网页程序判断是否验证成功&br& session.setAttribute(&randomStr&, randomStr); //输出随机数图片&br& ImageIO.write(image, &JPEG&, response.getOutputStream());&br&%&
请登录后再发表评论!php中怎么获取验证码的值
php中怎么获取验证码的值
09-09-08 &匿名提问
.vi&&ActiveDev输入设备名,Product Type可获取DAQ设备...开发机上激活以后,如果开发机升级了或者换了或者增加新的...回答=更改了配置,那么lisence manager里的机器码肯定会变...LV和CVI的专用驱动可以从NI的网站下载 ,源代码是用c...
请登录后再发表评论!验证码如何抓取?验证码无法显示?【更新】
查看: 1682|
摘要: 下面列出验证码无法显示的几种情况!
------------------------------------Q、验证码抓包问题------------------------------------答:大多数验证码能直接显示出来,这里就不说了。但某些验证码要点击一下验证码框,才会产生一个验证码数据。如果有时候实在找不到验证码地址,那么直接点击验证码图片盘的“换一张”等按钮,就能立即产生一个新的验证码地址数据包。(如图)------------------------------------Q、验证码无法显示的问题------------------------------------情况1:验证码地址错误解决:查看状态栏提示的网址,在浏览器里面手动打开是否能显示?(右键点击绿色验证码区域,会自动复制验证码地址)情况2:验证码是flash文件解决:目前软件验证码读取只支持图片,格式有:png、bmp、jpg、gif等情况3:图片验证码地址正确,但无法显示解决:(1). 添加协议头试试 (2). 获取验证码地址含有的参数[登录验证码协议头]User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/ Firefox/25.0Accept: text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8Accept-Language: zh-cn,q=0.8,en-q=0.5,q=0.3[/登录验证码协议头][登录验证码]http://open./img.php?nowtime=5[/登录验证码]情况4:部分验证码图片在数据包里面显示为乱码解决:只需要把地址放到神器里面,就可以正常显示(因为抓包工具对部分格式图片显示会有问题)情况5:能读取验证码,但每次验证码都相同解决:[登录前提交网址1]/register?act=reg&type=site[/登录前提交网址1] --先访问一次验证码页面[登录验证码]/user/validate.png[/登录验证码] --再读取验证码图片[登录提交网址1][/登录提交网址1]情况6:验证码图片正常打开答:可能是验证码里面含有的一些参数需要获取,参考例程:[登录前提交网址1]/Passport.p?Ajax_CallBack=true&t=971906&Ajax_CallBackType=Mtime.Passport.Pages.PassportService&Ajax_CallBackMethod=RefreshVcode&Ajax_RequestUrl=http%3A%2F%%2Fmember%2Fsignin%2F%3FredirectUrl%3Dhttp%3A%2F%%2Ffilmov%2F[/登录前提交网址1] --t值是当前时间,神器里面可以默认[登录前提交1参数1]token=(.*?)&[/登录前提交1参数1][登录前提交1参数2]&code=(.*?)&[/登录前提交1参数2][登录验证码]/ValidateCode.ashx?token={登录前提交1参数1}&code={登录前提交1参数2}&width=120&height=60[/登录验证码][登录提交网址1]/?1[/登录提交网址1]情况7:html格式的验证码地址答:加上这个标签&[gif验证码]开启[/gif验证码]&情况8:这是POST的验证码地址答:需要加上提交数据标签。如下:[登录前提交网址1]http://bbs./member.php?mod=register[/登录前提交网址1][登录前提交1参数1][/登录前提交1参数1]&--SM8oz810[登录前提交网址2]http://bbs./misc.php?mod=seccode&action=update&idhash={登录前提交1参数1}&inajax=1&ajaxtarget=seccode_{登录前提交1参数1}[/登录前提交网址2][登录前提交2参数1]update%3D(.*?)%26[/登录前提交2参数1]--------------------------------------------------------------------------------正式登录[登录验证码]http://bbs./misc.php?mod=seccode&update={登录前提交2参数1}&idhash={登录前提交1参数1}[/登录验证码][登录验证码提交数据]fromFlash=1[/登录验证码提交数据][登录提交网址1]/?1[/登录提交网址1]情况9:data:image/base64,加密验证码,需要3.240以上版本支持,例程如下[登录验证码]data:image/base64,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[/登录验证码]情况10:某个验证码参数没有获取[发布前提交网址1]/forums/thread-send-tagid-81990-kind_id-2182[/发布前提交网址1][发布前提交1参数1][/发布前提交1参数1] --这个参数要获取,否则,验证码地址就是错误的[发布验证码]/captchaService.do?method=captcha&captchaId={发布前提交1参数1}&x=534[/发布验证码][发布提交网址1][/发布提交网址1]情况11:discuz验证码提示“Access Denied”,无法显示一般浏览器直接打开DZ的验证码,会提示“Access Denied”,但是编写规则的时候,是能正常显示的这种验证码格式如:/misc.php?mod=seccode&update=88482&idhash=SOuuHhT &--idhash值需要和提交数据的值相同
刚表态过的朋友 ()
上一篇:下一篇:
相关帮助:
免责申明:本站开发的营销神器,只为提高用户工作效率。所有规则仅供学习参考,禁止使用本工具发布低俗、违规、违法内容!欢迎举报!
Powered by
Discuz!X3.2再来一篇好东西,winsock获取验证码图片
作者:sunshinebean 日期:
不要觉得很简单,这个和处理字符差别很大的!字符的话返回的是Http头+服务器返回信息图片的话返回的是Http头+二进制数据流我要提取图片的话必须得把http头给过滤掉对吧?以腾讯的验证码获取为例,返回的是:HTTP/1.1 200 OKServer: tencent http serverAccept-Ranges: bytesPragma: No-cacheContent-Length: 2922Set-Cookie: verifysession=h001ec5fecfe2f8ee9119375fba80e839e6a5a7d5a2fd8d0f6a; PATH=/; ;Connection: closeContent-Type: image/jpeg从这里开始都是二进制数据流了。。解决思路:定义一个byte数组记为BytData(),接收图片后,用字节处理函数instrb来找Content-Type: image/jpeg和数据流之间的间隔,也就是ChrB(13) & ChrB(10) & ChrB(13) & ChrB(10)然后找到二进制数据流开始的位置,重新定义一个byte数组,记为NewBytDate(),然后NewBytDate(0)=BytData(二进制数据流开始的位置),这样一一循环,循环到ubound(BytData-间隔上面的一些字符),最后保存这块NewBytDate就是我们要的图片了哈哈~具体代码:Private Function RndNumber()&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'生成16位随机t。。&&&&Randomize&&&&RndNumber = Format$((Rnd * <span style="color:#.99) + <span style="color:#, "0.0000")End Function&&Private Sub Picture1_Click()&&&&If Winsock1.State
<span style="color:# Then Winsock1.Close&&&&Winsock1.RemoteHost = ""&&&&Winsock1.RemotePort = <span style="color:#&&&&Winsock1.Protocol = sckTCPProtocol&&&&Winsock1.ConnectEnd SubPrivate Sub Winsock1_Connect()&&&&Dim str$, RndN As Single&&&&RndN = RndNumber&&&&str = "GET /getimage?aid=&" & RndN & " HTTP/1.1" & vbCrLf&&&&str = str & "Host: " & vbCrLf&&&&str = str & vbCrLf&&&&Winsock1.SendData strEnd SubPrivate Sub winsock1_DataArrival(ByVal bytesTotal As Long)&&&&Dim BytData() As Byte, a&, b&, NewBytDate() As Byte&&&&Winsock1.GetData BytData, vbArray + vbByte, bytesTotal&&&&On Error Resume Next&&&&a = InStrB(BytData, ChrB(<span style="color:#) & ChrB(<span style="color:#) & ChrB(<span style="color:#) & ChrB(<span style="color:#))&&&&b = UBound(BytData) - a - <span style="color:#&&&&ReDim NewBytDate(b)&&&&For ii = <span style="color:# To b&&&&&&&&NewBytDate(ii) = BytData(a + <span style="color:# + ii)&&&&Next&&&&Open App.Path & "\temp.jpg" For Binary As #1&&&&&&&&Put <span style="color:#, , NewBytDate&&&&Close #1&&&&Picture1.Picture = LoadPicture(App.Path & "\temp.jpg")&&&&Kill App.Path & "\temp.jpg"End SubPrivate Sub Winsock1_Close()&&&&If Winsock1.State
<span style="color:# Then Winsock1.CloseEnd Sub
上一篇: 下一篇:
| 查看次数: -
修复完毕拉哈哈~哪个链接啊发我看看
游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址:= 0 && this.value.substring(0, 7) != 'http://'){this.value = 'http://' + this.value}" onblur="if (this.value.length >= 0 && this.value.substring(0, 7) != 'http://'){this.value = 'http://' + this.value}else{if (this.value == 'http://'){this.value = ''}}" /> 输入网址便于回访.
禁止表情转换
禁止自动转换链接
禁止自动转换关键字
虽然发表评论不用注册,但是为了保护您的发言权,建议您.

我要回帖

更多关于 vb.net 验证码 的文章

 

随机推荐