返回
首页>资讯

怎么识别验证码(验证码识别技术)

时间: 2023-03-24 16:51:16

怎么识别验证码

1、识别程序以dll的方式提供使用,通过简单的函数调用即可识别复杂的验证码图片;

2、自动识别; 智能处理各种背景、边框、干扰等;

3、识别率达80%-100%(指不太复杂的验证码),正确率高,本地图片识别速度一般0.1秒以内,安全可靠。

验证码识别技术

public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
// 验证码图片的宽度。
int width =70;
//验证码图片的高度。
int height=36;
BufferedImage buffImg=new BufferedImage(width,height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g=buffImg.createGraphics();
//创建一个随机数生成器类。
Random random=new Random();
// 设定图像背景色(因为是做背景,所以偏淡)
g.setColor(getRandColor(180, 250));
g.fillRect(0,0,width,height);
//创建字体,字体的大小应该根据图片的高度来定。
Font font=new Font("Times New Roman",Font.PLAIN,28);
//设置字体。
g.setFont(font);
//画边框。
g.setColor(Color.BLACK);
g.drawRect(0,0,width-1,height-1);
// 随机产生160条干扰线,使图象中的认证码不易被其它程序探测到。
g.setColor(Color.GRAY);
for (int i=0;i<50;i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
//randomCode用于保存随机产生的验证码,以便用户登录后进行验证。
StringBuffer randomCode=new StringBuffer();

// 设置默认生成4个验证码
int length = 4;

//设置备选验证码:包括"a-z"和数字"0-9"
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
int size = base.length();
//随机产生4位数字的验证码。
for (int i=0;i<length;i++) {
//得到随机产生的验证码数字。
int start = random.nextInt(size);
String strRand = base.substring(start, start + 1);
//用随机产生的颜色将验证码绘制到图像中。
//g.setColor(new Color(red,green,blue));
// 生成随机颜色(因为是做前景,所以偏深)
g.setColor(getRandColor(1, 100));
g.drawString(strRand,13*i+6,28);
//将产生的四个随机数组合在一起。
randomCode.append(strRand);
}
//将四位数字的验证码保存到Session中。
HttpSession session=req.getSession();
session.setAttribute("rand",randomCode.toString());
//禁止图像缓存。
res.setHeader("Pragma","no-cache");
res.setHeader("Cache-Control","no-cache");
res.setDateHeader("Expires", 0);
res.setContentType("image/jpeg");
//将图像输出到Servlet输出流中。
ServletOutputStream sos=res.getOutputStream();
ImageIO.write(buffImg, "jpeg",sos);
sos.close();
}
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
}
这个是之前弄过的一个,可能比你的需求是简单了些,你就作为简单的参考吧

王者荣耀人脸识别验证码模式怎么弄?

1.进入王者荣耀程序,在弹窗处选择“开始验证”。
2.手动输入真实姓名和身份证号,点击“开始识别”。
3.同意人脸识别验证,并录制认证视频。点击“下一步”。
4.最后提示刷脸成功后,点击返回应用。重新登录王者荣耀游戏即可。

声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:daokedao3713@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

猜你喜欢

本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有

邮箱:daokedao3713@qq.com

备案号:鲁ICP备2022001955号-4

网站地图