验证码:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int width=800;
int height=200;
//BufferedImage(画板)
BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//Graphics(画笔)
Graphics p=image.getGraphics();
p.setColor(getRandomColor());
//使用画笔填充一个矩形区域
p.fillRect(0, 0, width, height);
//画线
p.setColor(getRandomColor());
p.drawLine(0, height/2,width/2 ,0 );
p.drawLine(0, height/2, width/2, height);
p.drawLine(width/2, 0, width, height/2);
p.drawLine(width/2, height, width,height/2 );
//画图
p.setColor(getRandomColor());
int x=(int) (Math.random()*(width-height));
int y=0;
p.fillOval(x, y, height, height);
//随机的在画板上画100个园
for (int i = 0; i < 100; i++) {
p.setColor(getRandomColor());
int rx=(int) (Math.random()*width);
int ry=(int) (Math.random()*height);
p.fillOval(rx, ry, 2, 2);
}
//随机画100条干扰线
for (int i = 0; i < 10; i++) {
p.setColor(getRandomColor());
int x1=(int) (Math.random()*width);
int y1=(int) (Math.random()*height);
int x2=(int) (Math.random()*width);
int y2=(int) (Math.random()*height);
p.drawLine(x1, y1, x2, y2);
}
//画4个随机字符
int w=(width-5*6)/4;
String code="";
p.setFont(new Font("Arial",Font.HANGING_BASELINE, 55));
for (int i = 0; i < 4; i++) {
String s=getWord();
code=code+s;
p.setColor(getRandomColor());
p.drawString(s, 6+i*(w+6), 50);
}
System.out.println("Fuck!!!!"+code);
request.getSession().setAttribute("code", code);
//ImageIO(快递)
ImageIO.write(image, "png", response.getOutputStream());
}
private Color getRandomColor(){
int r=(int) (Math.random()*256);
int g=(int) (Math.random()*256);
int b=(int) (Math.random()*256);
return new Color(r,g,b);
}
public String getWord(){
int i=0;
while(!(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122)){
i=(int) (Math.random()*128);
}
char c=(char) i;
return c+"";
}
jsp页面img直接src指向这个servlet。。。。
分享到:
相关推荐
在这个“SSM实现登录验证码功能”的项目中,我们将探讨如何在SSM框架下添加验证码功能,以增强用户登录的安全性。 首先,验证码功能的基本目的是防止恶意自动化程序(如机器人或爬虫)进行非法操作,如频繁尝试登录...
使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
在Java开发中,实现登录验证码功能是常见的安全措施,它能有效防止自动化的恶意登录尝试,比如机器人或脚本攻击。验证码(CAPTCHA)通常是一个随机生成的图像,包含一些扭曲的文字或数字,用户需要正确输入这些内容...
总结来说,Java实现图片验证码的关键在于生成随机字符串、图像处理和用户验证。通过合理的算法设计和图像操作,可以创建出既安全又易于人类辨认的验证码系统。在实际项目中,开发者可以根据需求调整验证码的复杂度和...
总的来说,Java实现验证码功能的关键在于理解如何利用`Graphics`和`BufferedImage`类进行图像绘制,以及如何生成和随机组合字符。通过这种方式,我们可以创建出具有随机性和复杂性的验证码,有效防止自动化工具的...
在IT行业中,尤其是在网络安全和身份验证领域,手机验证码是一种常用的技术手段,用于确保用户的身份真实性。在本场景中,我们将探讨...在实际开发中,还需要关注服务的稳定性和用户体验,确保验证码功能的可靠和便捷。
本篇文章将详细讲解如何使用Java的Servlet技术来实现一个简单的网站验证码功能。 首先,我们需要理解Servlet。Servlet是Java提供的一种服务器端编程接口,用于扩展Web服务器的功能。它能够接收HTTP请求并生成HTTP...
首先,我们来看一下前端登录页面是如何实现验证码功能的。 ```html <i class="fa fa-picture-o"></i> ;" type="text" id="verifyCode" name="verifyCode" placeholder="验证码" maxlength="4"> ; right:0; ...
本篇将详细介绍如何在Java中使用Servlet自定义实现验证码功能。 首先,我们需要理解验证码的基本原理。验证码的核心在于生成一段随机字符串,并将其图像化,同时将该字符串保存在服务器端。当用户提交表单时,...
在Java Web开发中,验证码是一种常见的安全机制,用于防止恶意自动化程序(如机器人)非法登录系统。本案例分析将深入探讨如何...同时,合理的设计和实现验证码功能,也能兼顾用户体验,避免给正常用户带来过多的困扰。
在Java JSP(Java Server Pages)中实现验证码功能,主要涉及以下几个关键知识点: 1. **随机字符串生成**: 验证码通常由一组随机字符组成,可以是字母、数字或两者混合。在Java中,我们可以使用`java.util....
"JAVA实现注册页面验证码刷新"的课题旨在探讨如何在Java后端生成并更新前端显示的验证码,确保每次用户请求时都能显示新的、随机生成的验证码。下面将详细介绍这个过程涉及的关键知识点。 1. **验证码的生成**: -...
在Java开发中,生成动态GIF验证码是一种常见的安全机制,用于防止自动机器人或者恶意脚本对网站进行非法操作。这种验证码通常包含随机生成的字母、数字或者符号,以动画的形式展示,用户需要输入看到的验证码才能...
在Java Web项目中,实现验证码功能通常遵循以下步骤: 1. **前端发起请求**:用户点击“获取验证码”按钮时,前端通过Ajax等方式向服务器发送请求。 2. **生成验证码ID**:服务器接收到请求后,会生成一个唯一的...
本文将深入探讨如何使用Java编程语言来实现验证码验证,主要涉及Servlet、session以及画板对象等关键技术和概念。 首先,验证码(CAPTCHA)全称为“Completely Automated Public Turing test to tell Computers and...
实现功能:传入路径,返回base64图片编码(原图抠图及滑块图)、图片坐标值、唯一id; 使用方法:1、将jar包导入项目中; 2、调用工具类 ImageVo imageVo = GraphicCodeUtil.generate("E:\\data\\3322.jpg",width,...
Java作为广泛应用的编程语言,提供了丰富的库来实现这一功能。本文将详细介绍如何使用Java进行模拟登录,特别是结合OCR技术处理验证码。 首先,让我们了解什么是模拟登录。模拟登录是指通过编程方式自动登录到一个...
在Java编程语言中,用户注册和登录功能是任何应用程序的核心组成部分,而验证码的引入则可以增强系统的安全性,防止恶意的自动脚本或机器人进行非法操作。在这个项目中,"java 用户注册登录验证码"可能涉及以下几个...
Java后端产生验证码后台验证功能的实现代码 Java后端产生验证码后台验证功能的实现代码是指在Java后台生成验证码,并对其进行后台验证的功能。本文主要介绍了Java后台产生验证码后台验证功能的实现代码,结合实例...