- 浏览: 5826131 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
生成验证码图片的Servlet类
将验证码保存到Cookie的类
在html页面需要显示验证码图片的地方这样写:
web.xml中这样配置:
在java action中可以这样使用:
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.worthtech.app.web.cookie.AuthCodeCookie; public class AuthImg extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; private Font mFont; public AuthImg() { mFont = new Font("Times New Roman", 0, 18); } public void init() throws ServletException { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String authCode = genAuthCode(4); AuthCodeCookie authCodeCookie = new AuthCodeCookie(request, response); authCodeCookie.addAuthCode(authCode);//保存验证码到cookies response.setContentType("image/jpeg"); javax.servlet.ServletOutputStream out = response.getOutputStream(); int width = 60; int height = 20; BufferedImage image = new BufferedImage(width, height, 1); Graphics gra = image.getGraphics(); Random random = new Random(); gra.setColor(getRandColor(200, 250)); gra.fillRect(1, 1, width, height); gra.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); gra.drawLine(x, y, x + xl, y + yl); } gra.setFont(mFont); for (int i = 0; i < 4; i++) { char c = authCode.charAt(i); gra.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110))); gra.drawString(String.valueOf(c), 13 * i + 6, 16); } gra.dispose(); ImageIO.write(image, "JPEG", out); } 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); } public String genAuthCode(int length) { if (length < 1) return null; String strChars[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; StringBuffer strPassword = new StringBuffer(); int nRand = (int) Math.round(Math.random() * 100D); for (int i = 0; i < length; i++) { nRand = (int) Math.round(Math.random() * 100D); strPassword.append(strChars[nRand % (strChars.length - 1)]); } return strPassword.toString(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void destroy() { } }
将验证码保存到Cookie的类
public class AuthCodeCookie { private HttpServletRequest request; private HttpServletResponse response; public AuthCodeCookie(HttpServletRequest request, HttpServletResponse response) { this.request = request; this.response = response; } public void addAuthCode(String authCode) { addCookie("AUTHCODE", authCode); } public void addCookie(String name, String value) { Cookie cookies = new Cookie(name, value); cookies.setPath("/"); cookies.setMaxAge(-1);//设置cookie经过多长秒后被删除。如果0,就说明立即删除。如果是负数就表明当浏览器关闭时自动删除。 response.addCookie(cookies); } public String getAuthCode(){ return getCookies("AUTHCODE"); } public String getCookies(String cookieName) { Cookie[] cookies = request.getCookies(); Cookie cookie = null; try { if (cookies != null && cookies.length > 0) { for (int i = 0; i < cookies.length; i++) { cookie = cookies[i]; if (cookie.getName().equals(cookieName)) { return cookie.getValue(); } } } } catch (Exception e) { e.printStackTrace(); } return ""; } }
在html页面需要显示验证码图片的地方这样写:
<input type="text" name="authCode" value="" style="WIDTH: 56px" /> <img id="checkCodeImg" src="authimg" alt="wait..." height="18"/>//这个就是验证码图片了
web.xml中这样配置:
<servlet> <servlet-name>authimg</servlet-name> <servlet-class>com.worthtech.app.servlet.AuthImg</servlet-class> </servlet> <servlet-mapping> <servlet-name>authimg</servlet-name> <url-pattern>/authimg</url-pattern> </servlet-mapping>
在java action中可以这样使用:
ActionMessages errors = new ActionMessages(); AuthCodeCookie authCodeCookie = new AuthCodeCookie(request,response); if (!authCodeCookie.getAuthCode().equals(form.getAuthCode())) {//验证码不正确 errors.add("error.login.authcode", new ActionMessage("error.login.authcode")); this.saveErrors(request, errors); return mapping.getInputForward(); }
发表评论
-
PropertyMessageResources实现本地化
2010-03-01 12:16 2832public org.apache.struts.util.P ... -
在Struts1.x中使用net.sf.struts.saif.SAIFSpringPlugin配置Interceptor(拦截器)
2010-01-21 11:05 3943几个月前,Struts2发布,这个版本较struts1.x ... -
登录时“记住用户名”
2010-01-14 14:42 9462登录时需要用户“记住 ... -
权限控制
2009-12-29 14:34 2935很多时候不同的人拥有不同的权限,不同的人拥有不同的菜单。 那怎 ... -
导出数据到Excel
2009-08-12 09:46 2024HSSFWorkbook wb = new HSSFWor ... -
socket发送数据
2009-08-12 09:40 1781String date = request.getPara ... -
ActionMessages的使用&cookies操作验证码
2009-08-11 15:55 1886ActionMessages errors = new Act ... -
<html:select>的使用
2009-08-11 15:34 2951一般使用: <html:select property= ... -
比较笨的分页方法
2009-08-11 12:20 1827Java: sql += " order b ... -
使用<bean:define >取到bean:write的值,并赋值给java变量
2009-08-11 12:15 7972<logic:iterate id="it ... -
<bean:write> 用法
2009-08-11 11:55 12077bean:write相当于<%=reques ... -
注册的在线人数/统计在线人数/网站总访问量
2009-08-05 17:24 2885java LoginAction: request.getSe ... -
调用外部程序的方法
2009-08-03 17:29 2327if("calculator".equal ... -
下载文件
2009-08-03 16:10 1956if("download".equals( ... -
把图片写入数据库
2009-08-03 16:05 2141System.out.println("====== ... -
多文件上传,同时改名,并生成缩略图
2009-08-03 16:03 4703html: <script> function ... -
POI导出到Excel
2009-08-03 14:33 2177if (billForm.getButtonName() != ... -
对账文件导出
2009-08-03 14:27 2238if ("datafile".equals ... -
用户登录完整代码
2009-08-03 11:45 2783java action: LoginForm form=(Lo ... -
创建session
2009-08-03 11:04 3231java action: HttpSession sessio ...
相关推荐
获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是识别验证码!获取验证码图片,不是...
验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,例如恶意注册、刷票等。在Web开发中,JavaScript验证码插件是实现这一功能的便捷工具,尤其对于前端开发者来说,它们提供了...
验证码是网络安全领域中的一种常见机制,用于防止自动化程序(如机器人)进行非法操作,例如注册、登录或提交表单。本篇文章将详细讨论验证码的基本原理,以及如何使用Java实现简单的验证码破解方法。请注意,了解...
看很多人都在找asp 验证码 asp 随机验证 我收集了四个非常优秀的ASP随机验证码,非常好用,分别为: Asp纯数字随机验证码程序 (5.98 kb) Asp数字及字母组合验证码程序(5.98 kb) Asp纯字母验证码程序.zip (5.98 kb ...
验证码是Web应用中常见的一种安全机制,用于防止自动化的机器人或者恶意软件进行非法操作,比如注册、登录等。本项目提供了生成验证码的功能,并且在Java后台处理了验证码的验证过程,确保用户输入的验证码与系统...
本资料主要探讨了四种类型的行为验证码:滑块验证码、点选验证码、行为验证码以及旋转验证码,特别是滑动验证码。 1. **滑块验证码**:滑块验证码是目前常见的验证码形式,用户需要将一个滑块拖动到正确的位置以...
在网络安全领域,登录验证码是一种广泛使用的安全机制,用于防止恶意自动化程序(如机器人)未经授权地访问或操作用户账户。本文将深入探讨“gif动态登录验证码”这一特定的技术,以及它如何增强网站的安全性。 ...
今天专门给大家来聊聊验证码的问题,一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码!那么如果开发不提供帮助的话,我们自己有没有办法来处理这些验证码的问题呢?答案...
在实际部署中,开发者需要注意防刷机制,如验证码的刷新频率不宜过高,以免给正常用户带来不便,同时也可以加入验证码刷新的按钮,允许用户在看不清楚时刷新验证码。 最后,文件内容强调了layUI的验证码实现是使用...
在.NET开发中,验证码是一种常见的安全机制,用于防止自动化脚本或机器人进行恶意操作,如批量注册、频繁登录等。创建一个复杂的验证码可以提高网站的安全性,减少非法攻击的可能性。本教程将详细介绍如何在.NET中...
在网络安全和反爬虫技术领域,验证码是一种常用的方法,用于防止自动化的机器人程序对网站进行恶意操作,如数据抓取或滥用服务。本资源包针对验证码反爬提供了相关的工具和资料,主要涉及到“超级鹰打码平台”以及...
在Android应用开发中,验证码(CAPTCHA)是一种重要的安全机制,用于验证用户是人类而非自动程序。本篇文章将深入探讨如何在Android平台上实现验证码功能,包括自定义控件的创建和验证码的生成与验证。 首先,...
验证码识别技术是网络安全中一种常见的身份验证手段,用于防止恶意自动化程序(如机器人)进行非法操作。汉字验证码识别尤其具有挑战性,因为它涉及到中文字符的多样性以及图像处理的复杂性。下面将详细介绍图像分割...
在安卓应用开发中,"安卓发送验证码倒计时效果和自动获取验证码并填充"是一个常见的功能,主要用于用户注册、登录或修改重要信息时的身份验证。这个功能涉及到多个关键知识点,包括网络请求、短信监听、UI更新以及...
3. **国际短信验证码**:验证码通常以数字或字母的形式发送到用户的手机,用户需要在应用或网站上输入接收到的验证码以完成身份验证。由于是国际服务,ihuyi的验证码支持全球范围内的手机号码,适应跨国应用的需求。...
ASP.NET动态验证码是一种用于验证用户身份的安全机制,广泛应用于网页登录、注册和其他涉及用户交互的安全场景。它通过生成随机的图像和文字组合,要求用户在输入框中输入看到的字符,以此来防止自动化的机器人或者...
和验证码相关的图片数据集 数据说明: ·图像:包含PNG格式的验证码图像的文件夹。 ·Labels:包含两列的CSV文件:image_filename和文本。imagefilename对应于CAPTCHA图像的文件名,text包含CAPTCHA中描述的字母数字文本...
验证码识别技术是信息安全领域中的一个重要话题,特别是在防止自动化程序(如机器人)滥用服务时。VB,全称Visual Basic,是一种由Microsoft开发的编程环境,它提供了丰富的功能来创建图形用户界面和处理各种任务,...
发送的验证码内容代码,已写好,直接添加按钮调用即可,无需营业执照,个人可用,无需任何资质,轻松实现短信验证码功能,无需理解底层原理,全部封装好,直接调用即可,已写中文注释,使用c#代码编写,可在任何支持...