文档章节

纯数字验证码

c
 caiyezi
发布于 2016/11/08 20:24
字数 274
阅读 1
收藏 0
点赞 0
评论 0

登录时常常要用到验证码验证,下面是一个简单的纯数字验证码,详细代码见image.jsp,将每次生成的验证码文本直接存入session中,登录时方便后台从session中取值验证:

 

<%@ 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服务器,如果是tomacat可以不要这句
    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("sRand", sRand);
    g.dispose();
    ImageIO.write(image, "JPEG", response.getOutputStream());
%>

 



本文转载自:http://www.cnblogs.com/vipzhou/p/4852084.html

共有 人打赏支持
c
粉丝 1
博文 108
码字总数 0
作品 0
西安
程序员
php如何实现验证码

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现...

snowing1990 ⋅ 2016/04/15 ⋅ 0

ASP.NET 如何做出简单的验证码

如果说要做验证码,那不得不提的就是GDI+绘图了。我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它。 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高...

我不会抽烟 ⋅ 2014/07/29 ⋅ 0

503718696/GreenBamboo-CAPTCHA

#GreenBamboo-CAPTCHA 青竹验证码系统是互联网开源青竹团队的第一个项目。该项目拥有实现统一图形验证码生成接口的验证码实体类,项目只需调用各种验证码实例即可轻松获得验证的能力。 更多关...

503718696 ⋅ 2016/06/14 ⋅ 0

tp图片验证码使用

生成验证码图片(纯数字) public function getimgcode(){ $Verify = new ThinkVerify(); $Verify->codeSet = '0123456789'; $Verify->entry();} 使用验证码 <img src="上面方法链接"/> 后台......

tbx不吐槽 ⋅ 2016/02/24 ⋅ 0

国庆节快乐,ShuipFCMS 2.0.3 版发布

在这里祝大家国庆节快乐~ Bug修复: 1、修复水印添加位置计算。 2、修改Hook。 3、修复导入模型时,原来字段设置的内容被重置。 4、修改编辑器层级数,以免遮挡其他控件。 5、修复字段添加S...

水平凡 ⋅ 2014/09/30 ⋅ 3

iOS-常用的自定义控件

前言 项目中比较可能会用到的自定义控件,也会去参考别人的第三方,解读他们解决问题的思路并加上自己的逻辑,记录下来方便以后阅读; (一)图文验证码; demo展示的是简单的图文验证(没有...

麦兜卖鱼丸 ⋅ 2016/10/18 ⋅ 0

java web验证码生成总结(包括servlet、jsp和struts2实现)(转)

一、使用纯Servlet实现验证码 (1)在web.xml配置: [java] view plaincopy <servlet> <servlet-name>image</servlet-name> <servlet-class>org.test.web.AuthImage</servlet-class> </servlet>......

Famp ⋅ 2014/07/10 ⋅ 0

网友曝光微信密码漏洞 柳岩马化腾账号被入侵(图)

在前不久,有极客网友根据电话采访周鸿祎的视频拨号声,分析出了周鸿祎的电话号码。此事一经报道,立刻在社会中传播开来。极客探究和不留后患的做法甚至得到了社会各界的广泛认可。周鸿祎得知...

nnnm ⋅ 2012/10/20 ⋅ 55

[PHP] 网页验证码的实现

验证码的作用是区分人与机器。防止恶意注册、留言等。 首先我们先创建一个画布。用来存放验证码。 画布生成为100 × 30 px大小的图片,并把它由默认的黑色改成白色。 $image = imagecreatetr...

class__fun ⋅ 2017/07/29 ⋅ 0

自适应兼容移动端的验证码插件--Verify.js

Verify 是一款开源,免费的验证码插件,自适应兼容移动端。支持常规验证码、运算验证码、滑动验证码、拼图验证码、选字验证码。 常规验证码:由数字和字母构成,用户输入不区分大小写,可变形...

Hibear ⋅ 2017/11/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 39分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 47分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 53分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

mysql远程连接不上

设置了root所有hosts远程登录,可是远程登录还是失败,原因可能如下: 登录本地数据库 mysql -uroot -p123456 查询用户表 mysql> select user,host,password from mysql.user; 删除密码为空的...

冰公子 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部