`
mmk12333
  • 浏览: 33594 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浏览器图片验证码

阅读更多

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;

public class ResponseServlet8 extends HttpServlet {

    // 需求:用java程序生成一张图片
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 使用java图形界面技术绘制一张图片

        int charNum = 4;
        int width = 30 * 4;
        int height = 30;

        // 1. 创建一张内存图片
        BufferedImage bufferedImage = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);

        // 2.获得绘图对象
        Graphics graphics = bufferedImage.getGraphics();

        // 3、绘制背景颜色
        graphics.setColor(Color.YELLOW);
        graphics.fillRect(0, 0, width, height);

        // 4、绘制图片边框
        graphics.setColor(Color.BLUE);
        graphics.drawRect(0, 0, width - 1, height - 1);

        // 5、输出验证码内容
        graphics.setColor(Color.RED);
        graphics.setFont(new Font("宋体", Font.BOLD, 20));

        // 随机输出4个字母
        Graphics2D graphics2d = (Graphics2D) graphics;
        String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        Random random = new Random();
        int x = 5;
        for (int i = 0; i < 4; i++) {
            int index = random.nextInt(26);
            String content = String.valueOf(s.charAt(index));
            double theta = random.nextInt(45) * Math.PI / 180;
            graphics2d.rotate(theta, x, 18);
            graphics2d.drawString(content, x, 18);
            graphics2d.rotate(-theta, x, 18);
            x += 30;
        }

        // 6、绘制干扰线
        graphics.setColor(Color.GRAY);
        for (int i = 0; i < 30; i++) {
            int x1 = random.nextInt(width);
            int x2 = random.nextInt(width);

            int y1 = random.nextInt(height);
            int y2 = random.nextInt(height);
            graphics.drawLine(x1, y1, x2, y2);
        }

        // 释放资源
        graphics.dispose();

        // 图书输出 ImageIO
        ImageIO.write(bufferedImage, "jpg", response.getOutputStream());

0
0
分享到:
评论

相关推荐

    浏览器插件自动识别输入验证码

    浏览器内置验证码识别接口,将图片传递给自动识别插件,插件返回验证码给浏览器,浏览器收到验证码后填写到网页表单。

    seo_易语言精易We浏览器自动旋验证码

    seo_易语言精易We浏览器自动旋验证码,快照,提交Url,你想什么时候提交就可以什么时候提交,有视频有图像而不是数据,实实在在可以看得到的过程.

    Java实现点击文字验证码与拖动/滑动图片验证码(源码+demo+单元测试+实现思路)

    1.部署步骤 1.1 100%可生产使用. 1.2 导入到idea时候选择maven项目 1.3 修改demo里面子项目resources/application.yml的redis... 4.2拖动图片验证码:https://blog.csdn.net/m0_38138879/article/details/117559456

    验证码自动识别-1

    验证码识别的代码,其中,make_data为数据处理文件,train为训练文件,test为测试文件,explore为一些需要使用的函数。

    易语言取网页验证码图片

    易语言取网页验证码图片,实现及时抓取网页上的验证码。

    【浏览器插件】Noptcha v0.1.10,自动识别图片验证码,支持reCAPTCHA和hCAPTCHA

    【浏览器插件】Noptcha v0.1.10,自动识别图片验证码,支持reCAPTCHA和hCAPTCHA

    162100数字DIV(非图片)验证码 v3.0.zip

    162100数字DIV(非图片)验证码 v3.0 更新日志 1、优化精简了代码。 2、根据设置的秒数,数字与背景色不停变色,实现无常变化。 3、可自行更改记录验证码的cookie名称。 162100数字DIV(非图片)验证码系统简介 ...

    Python +Selenium解决图片验证码登录或注册问题(推荐)

    主要介绍了Python Selenium解决图片验证码登录或注册问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    ZiiLaa验证码自动识别系统

    该系统采用了ZiilaaBrowser浏览器插件来捕获验证码图片,故此可以轻松嵌入到网页之中,在保持浏览器会话环境的同时,还可以实现仅读取1次验证码图片(大部分验证码每次读取的结果都不一样)就可以实现验证码图片显示...

    验证码在IE中不刷新而谷歌等浏览器正常的解决方案

    今天在做验证码的时候发现在IE中,验证码不会刷新,而谷歌等其他浏览器没有问题,所以我想到应该是缓存问题,因为IE默认的设置是如果访问地址没变化就不会去获取而是加载缓存中的内容 所以解决方案就是在验证码的...

    ZiiLaa验证码自动识别程序 v1.0 PHP.rar

     该系统采用了ZiilaaBrowser浏览器插件来捕获验证码图片,故此可以轻松嵌入到网页之中,在保持浏览器会话环境的同时,还可以实现仅读取1次验证码图片(大部分验证码每次读取的结果都不一样)就可以实现验证码图片显示...

    验证码下载,验证码实现

    简单的验证码实现 public static void generateTokenImage(HttpServletResponse response, HttpSession session, int width, int height) throws IOException { //设置响应内容为图片格式 response.setContentType...

    php实现简单实用的验证码类

    PHP实现简单实用的验证码类,$image-&gt;config('宽度','高度','字符个数','验证码session索引'),$...//这样就会向浏览器输出一张图片,产生验证码,产生验证码图片,设置图片的干扰像素,在验证码图片上逐个画上验证码。

    解决iweb mall验证码不显示问题

    解决iweb mall验证码不显示问题,亲自验证。 下载本文件,解压放在根目录下,运行本文件。等去除黑格完毕后。重新登录或者注册就可以显示了,解决iweb mall shop 登录或者注册时不显示验证码图片的问题。

    ZiiLaa验证码自动识别系统.zip

    该系统采用了ZiilaaBrowser浏览器插件来捕获验证码图片,故此可以轻松嵌入到网页之中,在保持浏览器会话环境的同时,还可以实现仅读取1次验证码图片(大部分验证码每次读取的结果都不一样)就可以实现验证码图片显示...

    pb开发的验证码识别程序 + 实用的pb webbrowser使用

    验证码识别首先是把验证码图片放到本地,然后用图形函数把图片一个个点的颜色值取出,根据设置的阀值,对图片进行黑白化处理,如果有噪点,进行去噪处理。 然后把图片中的文字一个个取出,进行字模处理,任何图片都...

    162100数字DIV非图片验证码 v3.0

    3、可自行更改记录验证码的cookie名称。【简介】1、原创作品,代码简洁、短小精悍,使用方便。2、前台仅引用一个Javascript文件搞定,可接口任何语言的网页。3、可应用于论坛、CMS、文章发布等任何类型系统的前、...

    精易WEB浏览器另类实现的QQ登录-易语言

    毕竟,我所有的提交依赖于当前的网页而已,把浏览器当成一个接收验证码的图片框 原来想实现自动滑块的,但很遗憾识图好像是一个新的挑战,我也没成功,期待后面更好的开源吧 就这样,给大家一点我的想法,源码我觉得...

    jsp+Ajax无刷新验证码完整版

    为了防止作弊,当用户连接3次输入错误时则重载一下图片,这样也利于用户因为图片上的验证码辨认不清而使终无法输入正确。 本例还特别适合检验用户名是否有效,只要从后台做个sql查询,返回一个值或是xml...

    jsp+Ajax无刷新验证码

    为了防止作弊,当用户连接3次输入错误时则重载一下图片,这样也利于用户因为图片上的验证码辨认不清而使终无法输入正确。 本例还特别适合检验用户名是否有效,只要从后台做个sql查询,返回一个值或是xml...

Global site tag (gtag.js) - Google Analytics