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());
分享到:
相关推荐
浏览器内置验证码识别接口,将图片传递给自动识别插件,插件返回验证码给浏览器,浏览器收到验证码后填写到网页表单。
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
ASP.NET 图片验证码是一种用于验证用户身份的安全机制,它通过生成随机的图像和文本组合来防止自动化的机器人或恶意软件进行非法操作。这种验证码的主要目的是防止垃圾邮件、自动注册和恶意登录尝试。在这个特定的...
seo_易语言精易We浏览器自动旋验证码,快照,提交Url,你想什么时候提交就可以什么时候提交,有视频有图像而不是数据,实实在在可以看得到的过程.
ASP汉字图片验证码是一种常见的安全验证技术,用于防止自动化程序(如机器人)对网站进行非法操作,如注册、登录或发布内容。在ASP(Active Server Pages)这种经典的服务器端脚本语言中实现汉字图片验证码,可以...
"vc++ 根据文字生成图片 文字图片验证码.zip"是一个关于如何使用Visual C++(简称VC++)编程语言来创建文字图片验证码的项目。这个压缩包可能包含必要的源代码、文档和其他资源,帮助开发者了解和实现验证码生成的...
总的来说,通过ASP.NET Web API实现点击式图片验证码功能,不仅提供了额外的安全层,还增加了用户体验的趣味性。这样的验证码实现需要考虑的因素包括文字的选择、颜色的随机性、位置的分配以及验证逻辑的实现,这些...
在网站的安全性方面,图片验证码(CAPTCHA)是防止自动机器人或恶意爬虫进行非法操作的重要工具。本文将深入探讨如何使用PHP创建一个实用的图片验证码,包括其功能、实现原理以及解决可能出现的问题。 首先,我们要...
在IT领域,图片验证码是一种广泛应用于网站安全性的重要技术。它主要用于防止自动化的机器人或恶意软件进行非法操作,如批量注册、恶意登录等。在ASP.NET框架下,开发人员可以利用其丰富的功能来创建自定义的图片...
ASP.NET图片验证码程序是一种用于网络安全的身份验证机制,它主要用于防止自动化的机器人或恶意脚本进行非法操作,如垃圾邮件提交、刷票等。这个程序利用C#编程语言编写,结合了图像处理技术来生成随机的、难以被...
要获取这个图片,我们需要模拟浏览器的行为,发送一个HTTP请求到服务器,请求包含验证码图片的URL。 在易语言中,我们可以使用“网络”模块中的相关命令来实现这个过程。首先是建立网络连接,可以使用"建立网络连接...
问题的原因可能是由于浏览器的缓存机制,导致验证码图片不被刷新。解决方法是设置浏览器不要缓存该图片,使用response.setHeader()方法设置Pragma、Cache-Control和Expires头信息。 知识点4: 404错误的解决方法 在...
Java图片验证码工具类是一种在Web应用中用于防止恶意自动化操作(如机器人)的常用安全机制。它通过生成随机的字符序列并将其显示为图片来工作,用户需要输入看到的字符才能完成验证。以下是对这个Java工具类的详细...
图片验证码通常由一串随机生成的字母或数字组成,这些字符扭曲、旋转、模糊,以增加机器识别的难度。在用户界面中,用户需要输入显示的验证码,只有正确输入才能通过验证。`securimage`库是PHP中广泛使用的图片...
根据提供的信息,我们可以总结出以下关于“C#.net 漂亮图片验证码”的知识点: ### 知识点一:图片验证码的基本概念 图片验证码(CAPTCHA)是一种常用于验证用户是否为人类的操作者而非自动程序的技术。其主要目的...
验证码自动识别是人工智能领域的一个重要应用,特别是在网络安全和自动化流程中。这个项目主要涉及验证码的图像处理、特征提取以及机器学习或深度学习模型的训练与测试。以下将详细阐述相关知识点: 1. **图像处理*...
在ASP.NET中,图片验证码(CAPTCHA)是一种防止恶意机器人或自动脚本进行非法操作的安全机制。当用户点击验证码图片时,系统会无刷新地更换新的验证码,这提高了用户体验并增加了安全性。以下是对这个主题的详细说明...
根据给定的信息,我们可以深入探讨该“用户注册时使用的图片验证码...总之,该图片验证码程序虽然简单,但有效地提高了系统的安全性。通过对生成算法的进一步优化,可以在不牺牲用户体验的前提下更好地抵御自动化攻击。
在本主题中,我们将详细探讨如何使用Java Servlet(jsp)来生成图片验证码。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机生成的字母和数字,显示在一张图片上,用户需要输入看到的文字以证明他们...
图片验证码在网页应用中主要用于防止恶意自动化脚本的攻击,它要求用户输入显示在图片中的随机字符或数字以验证其是人类操作。本文将深入解析JSP中实现图片验证码的主要技术和步骤。 首先,我们需要理解如何生成...