关键词:
后端
package cn.itcast.web.servlet;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
int width = 100;
int height = 50;
//1.创建一对象,在内存中图片(验证码图片对象)
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//2.美化图片
//2.1 填充背景色
Graphics g = image.getGraphics();//画笔对象
g.setColor(Color.PINK);//设置画笔颜色
g.fillRect(0, 0, width, height);
//2.2画边框
g.setColor(Color.BLUE);
g.drawRect(0, 0, width - 1, height - 1);
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789";
//生成随机角标
Random ran = new Random();
for (int i = 1; i <= 4; i++)
int index = ran.nextInt(str.length());
//获取字符
char ch = str.charAt(index);//随机字符
//2.3写验证码
g.drawString(ch + "", width / 5 * i, height / 2);
//2.4画干扰线
g.setColor(Color.GREEN);
//随机生成坐标点
for (int i = 0; i < 10; i++)
int x1 = ran.nextInt(width);
int x2 = ran.nextInt(width);
int y1 = ran.nextInt(height);
int y2 = ran.nextInt(height);
g.drawLine(x1, y1, x2, y2);
//3.将图片输出到页面展示
ImageIO.write(image, "jpg", response.getOutputStream());
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
this.doPost(request, response);
前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
/*
分析:
点击超链接或者图片,需要换一张
1.给超链接和图片绑定单击事件
2.重新设置图片的src属性值
*/
window.onload = function ()
//1.获取图片对象
var img = document.getElementById("checkCode");
//2.绑定单击事件
img.onclick = function ()
//加时间戳
var date = new Date().getTime();
img.src = "/项目名/checkCodeServlet?" + date;
function f()
var img = document.getElementById("checkCode");
var date = new Date().getTime();
img.src = "/项目名/checkCodeServlet?" + date;
</script>
</head>
<body>
<img id="checkCode" src="/项目名/checkCodeServlet"/>
<a href="javascript:void(0);" onclick="f()">看不清换一张?</a>
</body>
</html>
javaweb实现验证码
验证码的作用:通常的登录或者注册系统时,都会要求用户输入验证码,以此区别用户行为和计算机程序行为,目的是有人防止恶意注册、暴力破解密码等。实现验证码的思路:用server实现随机生成数字和字母组成图片的功能,... 查看详情
java#java实现简单的验证码登录(代码片段)
1.验证码类packagecom.sdhsie.web.system.controller;importcom.sdhsie.base.util.Const;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importjavax. 查看详情
简单的ocr识别验证码demo|keras实现(代码片段)
HowtoimplementanOCRmodelusingCNNs,RNNs,andCTCloss.ThisexampledemonstratesasimpleOCRmodelbuiltwiththeFunctionalAPI.ApartfromcombiningCNNandRNN,italsoillustrateshowyoucaninstantiateanewlayeranduseitasan 查看详情
验证码之图片验证码(代码片段)
...。以下我以一个简单的来说明。这里我利用的是自己画图实现的,即用画图的方式来实现的,这样不在需要什么像第三方的什么凭证才可以使用,这种简单易学,也能达到一定的效果,故目前先只是研究了这种简单的。当点击看... 查看详情
基于tensorflow的简单验证码识别(代码片段)
TensorFlow可以用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别。生成验证码 首先生成验证码,这里使用Python的captcha库来生成即... 查看详情
java实现一个简单的验证码生成器(代码片段)
最近看了网上很多大佬们写的验证码生成,寻思着自己也写一个,话不多说,代码如下: &nb 查看详情
使用pythonpil库实现简单验证码的去噪处理(代码片段)
想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图、将灰度图二值化和去除噪点三个基本过程。这里仅以比较... 查看详情
canvas实现验证码功能(代码片段)
我们在做一些后台系统登录功能的时候,一般都会用到验证码,最多的就是后台生成的验证码图片返回给前端的。也可以不调用后端接口,前端使用canvas直接生成验证码。由于功能过于简单,不需要多少代码和文字说明,下面直... 查看详情
实现开源的验证码登录(代码片段)
1.如何生成验证码第一种方式:自己实现第二种方式:别人实现能自己实现就自己实现,对于非常简单的功能来说,但绝大多业务通用的功能,别人已经实现好了,所以这里我们就使用开源的类库来实现验... 查看详情
实现开源的验证码登录(代码片段)
1.如何生成验证码第一种方式:自己实现第二种方式:别人实现能自己实现就自己实现,对于非常简单的功能来说,但绝大多业务通用的功能,别人已经实现好了,所以这里我们就使用开源的类库来实现验... 查看详情
day87-bbs项目数据库设计与简单登陆验证码(代码片段)
...程:1搞清楚需求(产品经理)(1)基于用户认证组件和Ajax实现登录验证(图片验证码)(2)基于forms组件和Ajax实现注册功能(3)设计系统首页(文章列表渲染)(4)设计个人站点页面---跨表查询,分组查询(5)文章详情页(6)实现文章点赞功... 查看详情
httpservletresponse实战之下载文件与动态验证码javaweb(代码片段)
@[toc]一.前言web服务器从客户端接收HTTP请求,并创建表示该请求的HttpServletRequest对象和表示该请求响应的HTTPServletResponse。HttpServletReques:获取客户端请求过来的参数。HttpServletResponse:给客户端响应一些信息。二.HttpServletResponse负... 查看详情
爬虫之简单验证码处理(代码片段)
...一般被称为光学文字识别(OpticalCharacterRecognition,OCR)。可以实现OCR的底层库并不多,目前很多库都是使用共同的几个底层OCR库,或者是在上面进行定制。在这里我们只重点介绍:Tesseract Tesseract是一个OCR库,目前由Google赞助(Goo 查看详情
创建一个javaweb项目——servlet验证mysql数据库实现登录(代码片段)
创建一个JavaWEB项目这个项目就是简单的登录页面,验证数据是否与MySQL数据库中信息匹配。项目搭建准备工具1、Tomcattomcat下载地址:https://tomcat.apache.org/。将tomcat下载之后,解压放在磁盘中的一个目录下方。其目录结... 查看详情
关于豆瓣登录,并实现验证码输入的方法(代码片段)
...,以下是代码:#-*-coding:utf-8-*-‘‘‘豆瓣模拟登陆,并实现发一条状态‘‘‘importrequestssession=requests.session()header="Host":"www.douban.com","Referer":"https://www.douban.com/","User-Agent":"M 查看详情
一起学习php中gd库的使用(代码片段)
...使用中文然后按顺序点击之类的,这些都比较简单地就能实现。更复杂的验证码则推荐使用一些开源的库或者api来实现。今天,我们将继续学 查看详情
django验证码实现(代码片段)
django验证码的使用:验证码的作用:用于人机识别。验证码###验证码:defcode_str(request):fromPILimportImagefromPILimportImageDraw,ImageFontfromioimportBytesIO#生成随机字符串,一个数组的形式importrandomdefget_random_color():return(random.randint(0 查看详情
校验验证码实现登录验证(代码片段)
验证码处理方式1.手动处理2.云打码平台自动识别验证码实现流程:-1.对携带验证码的页面数据进行抓取-2.可以将验证码图片进行解析,验证码图片下载到本地-3.将验证码图片交给第三方进行识别,返回验证码图片上的值-云打码... 查看详情