- 浏览: 800396 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
[img][/img]
后台:(code为验证码文本框用户输入,rand为session中图片数字)
String sss=request.getSession().getAttribute("rand").toString();//获取session中的验证码
//判断验证码,code为用户输入的验证码
if("".equals(this.getCode())||!sss.trim().equals(this.getCode()))
{
out
.print("<script>alert('验证码错误!');history.go(-1);</script>");
out.flush();
out.close();
}
*****************************
前台jsp:
<tr>
<td height="40" class="fontbs">验证码:</td>
<td>
<input name="code" type="text" class="inputcode">
</td>
<td width="81" align="center">
<a href="javascript:loadimage();" >
<img alt="点击刷新"
name="randImage" id="randImage"
src="shouye/image.jsp"
width="76"
height="33"
border="1"
/>
</a>
</td>
</tr>
js部分:
<script language="JavaScript">
//刷新验证码
function loadimage()
{
document.getElementById("randImage").src= "shouye/image.jsp?"+Math.random();
}
</script>
************************************
验证码jsp:
image.jsp
********************
<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="UTF-8"%>
<%!
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);
}
%>
<%
out.clear();//这句针对resin服务器,如果是tomcat可以不要这句
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
g.setColor(getRandColor(160,200));
for (int i=0;i<155;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);
}
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
*******************结束
后台:(code为验证码文本框用户输入,rand为session中图片数字)
String sss=request.getSession().getAttribute("rand").toString();//获取session中的验证码
//判断验证码,code为用户输入的验证码
if("".equals(this.getCode())||!sss.trim().equals(this.getCode()))
{
out
.print("<script>alert('验证码错误!');history.go(-1);</script>");
out.flush();
out.close();
}
*****************************
前台jsp:
<tr>
<td height="40" class="fontbs">验证码:</td>
<td>
<input name="code" type="text" class="inputcode">
</td>
<td width="81" align="center">
<a href="javascript:loadimage();" >
<img alt="点击刷新"
name="randImage" id="randImage"
src="shouye/image.jsp"
width="76"
height="33"
border="1"
/>
</a>
</td>
</tr>
js部分:
<script language="JavaScript">
//刷新验证码
function loadimage()
{
document.getElementById("randImage").src= "shouye/image.jsp?"+Math.random();
}
</script>
************************************
验证码jsp:
image.jsp
********************
<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="UTF-8"%>
<%!
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);
}
%>
<%
out.clear();//这句针对resin服务器,如果是tomcat可以不要这句
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
g.setColor(getRandColor(160,200));
for (int i=0;i<155;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);
}
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
*******************结束
发表评论
-
字符串脱敏
2022-10-27 14:08 282public static void main(S ... -
html模板文件
2020-04-29 22:03 234<!DOCTYPE html> <html& ... -
基于阿里云服务器给部署的IIS应用服务器安装SSL证书
2020-04-15 11:05 312在IIS服务器上安装SSL证书 效果:将阿里云服务器上I ... -
中文字符转拼音
2019-02-20 16:34 6461、中文字符转拼音和首字母,英文数字符号不转 参考博客: -- ... -
跨域问题:js调用服务端接口
2018-03-02 14:16 606引用参考: --什么是跨 ... -
将博客搬至CSDN
2017-03-22 17:58 14接iteye最新通告,特将博客搬家到CSDN! -
图片images样式- 圆形显示
2017-01-16 18:45 622<!DOCTYPE html> < ... -
myEclipse2013破解方法
2014-02-11 09:11 3引自:http://www.cnblogs.com/timen ... -
ntko打开文件,区分图片和office
2013-10-23 09:35 1599引用<s:if test="url.toLow ... -
前台使用js的encodeURIComponent编码后,java解析乱码问题的解决方法
2013-09-02 15:28 2662问题描述: 前台使用encodeURIComponent把地址 ... -
主题类别列表导航显示备份
2013-08-13 12:17 883// $(function(){ $ ... -
div实现帖子的推荐、置顶、精华
2013-08-05 17:08 1355效果: 样式: <style type=" ... -
jquery select option 设置selected属性
2013-07-31 18:12 1353//jquery选中select function sele ... -
window.location.Reload()和window.location.href 区别
2013-07-26 14:57 1140参考:http://blog.csdn.net/cqkxzyi ... -
js常用操作2020
2013-07-24 09:33 9651、获取通用url前缀 //配置 function co ... -
老代码备份
2013-07-11 10:11 821<form id="selectForm&qu ... -
div样式
2013-07-05 16:50 731.white_Div { displ ... -
jquery checkbox 全选 取消 demo
2013-07-02 11:54 923第一种: function checkFunction(){ ... -
js获取ckeditor的值
2013-06-19 15:55 1680// 按版块名称查询 $(function(){ $( ... -
java基础-03 复习boolean和Boolean,类似int和Integer
2013-05-14 17:00 8831、step A boolean是基本数据类型Boolean是 ...
相关推荐
在这个特定的VB(Visual Basic)实例中,我们关注的是纯数字验证码的识别。这涉及到图像处理和模式识别技术,以识别由计算机生成的随机数字组合。 验证码识别通常分为几个步骤: 1. 图像预处理:首先,我们需要对...
文件包含12000张数字验证码图片,其中: 10000张训练集; 1000张验证集; 1000张测试集; 图片文件名即为对应验证码包含的数字; 通过第三方库captcha生成的验证码图片,验证码只包含纯数字,图片分辨率为160*60;...
用户下载后,可以直接运行这个程序,生成所需的4位字母和数字验证码。 总结来说,4位含字母和数字的随机验证码是网络安全中的重要工具,它通过随机性、复杂性和时效性等手段,有效防止了恶意软件和自动化攻击,同时...
其次,字母数字验证码(Alphanumeric CAPTCHA)则结合了大小写字母和数字,其安全性介于纯数字验证码和汉字验证码之间。这种验证码通常包括以下几个步骤: 1. 字符库选取:包含大小写字母和数字的字符集。 2. 随机...
登陆数字验证码的实例,下载后直接引入就可以了
在IT领域,特别是机器学习和计算机视觉部分,数据集是训练模型的基础,而"1万张数字验证码数据集"正是这样一种资源,专为深度学习中的卷积神经网络(CNN)设计,用于训练模型识别验证码图像。验证码,全称Automated ...
在本文档中,我们关注一个基于JavaServer Pages (JSP) 的数字验证码生成示例。此示例主要涉及到JSP页面的配置、Java图形处理库的使用以及HTTP会话管理。 ##### 页面配置与编码设置 首先,通过`*" pageEncoding="gb...
纯数字验证码的时候用到的,整理如下: 代码如下:$(‘#mobile-vcode’).unbind();$(“#mobile-vcode”).bind(“keyup change”,function () { $(this).val($(this).val().replace(/\D/g,”)); if($(this).val()....
【标题】"纯代码OCR识别验证码无需安装插件"揭示了这个压缩包文件的主要功能,即使用纯代码的方式实现OCR(Optical Character Recognition,光学字符识别)技术来识别验证码,而不需要依赖任何额外的插件。...
QTP自动生成四位随机验证码,资源来至于朱伟老师!
相比于传统的图形验证码,腾讯云验证码具有更高的识别准确性和更低的误报率,同时减少了用户在验证过程中的困扰。它能够快速响应,确保网站的安全性,防止恶意注册、登录尝试以及评论灌水等问题。 “tencentcloud_...
包含了市面上常见老式的验证码,纯数字验证码,数字+字母验证码,中文算术的验证码,绝对可用的文档讲解,只需要拷贝进项目中稍做修改即可使用
3. **点干扰纯数字验证码500.rar**:与前一类类似,但只包含数字,没有字母,这可能有助于简化特定场景下的识别任务。 4. **数字字母验证码500.rar**:这是混合型验证码,既包含数字也包含字母,是真实应用场景中最...
标签“验证码”进一步确认了这个主题,它是信息安全领域的一个关键组成部分,常见的验证码类型包括数字验证码、字母数字验证码、滑动验证码、点击验证图片等。 在压缩包子文件的文件名称列表中,我们有两个文件:`...
1. **纯数字验证码**: 纯数字验证码是最基础的类型,它只包含0到9的数字。这种验证码相对简单,易于用户识别,但安全性较低,因为自动识别技术对数字的识别成功率较高。为了提高安全性,可以增加数字的数量、颜色...
CaptchaUtil 是 Java 语言封装的一个用于生成验证码的工具类,支持多种字体、干扰线、圈圈等作为背景,方便实用。
1. **数字验证码**:最简单的验证码类型是纯数字验证码,通常包含4-6个随机数字。在PHP中,我们可以使用 `rand()` 函数生成随机整数,并将其转换为字符串。然后,使用GD库在图像上绘制这些数字。 2. **英文验证码**...
对于纯数字验证码,字符集是0-9;对于字母数字混合,可以包含大小写字母和数字。 3. **变形处理**:为了增加机器识别的难度,通常会对验证码进行变形处理,比如扭曲、旋转、添加噪声、改变颜色等。 4. **显示与...
type //验证码类型(获取验证码时选填,1为算式验证码,2为数字字母验证码,为空时默认纯数字验证码) code //验证码(必填) 访问你的域名/api/yzm/api.php?type=1 访问你的域名/api/yzm/yz.php?code= (输入正确的...