JavaScript实现登陆验证码的脚本怎么写
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,今天小编给大家分享一下JavaScript实现登陆验证码的脚本怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收
千家信息网最后更新 2025年01月25日JavaScript实现登陆验证码的脚本怎么写
今天小编给大家分享一下JavaScript实现登陆验证码的脚本怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
填写输入信息 index.jsp
生成图片 image.jps
<%@ page contentType="image/JPEG" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="GBK"%>
给定范围取得随机色彩
<%!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); }%> <%
设置页面不缓存
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(newColor()); //g.drawRect(0,0,width⑴,height⑴);
随机产生155条干扰线,使图像中的认证码不容易被其它程序探测到
g.setColor(getRandColor(160, 200)); for (int i = 0; i < 100; 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); }
取随机产生的认证码(4位数字)
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("code",sRand);
图像生效
g.dispose();
输出图像到页面
ImageIO.write(image, "JPEG",response.getOutputStream()); %>
验证是不是输入正确result.jsp
<%@ page language="java"import="java.util.*" pageEncoding="GBK"%> <% String input=request.getParameter("input"); String code=(String)session.getAttribute("code"); if(input.equals(code)){ out.println("验证成功!"); }else{ out.println("验证失败!"); } %>
可能遇到的问题:
你的 eclipse 会提示你:graphic.drawString() 方法毛病
是你的 jdk 版本太高了,但是不要紧。把这个项目的兼容版本放低就好了。
具体操作步骤:
右键进程,选中 propriety,再选中"Java compiler"
把 jdk 的兼容版本下降到1.4便可
以上就是"JavaScript实现登陆验证码的脚本怎么写"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
图像
知识
篇文章
认证
验证
版本
生成
脚本
登陆
内容
色彩
页面
输入
不同
很大
相同
不要紧
上下
上下文
内存
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
辽宁信息化软件开发过程检测中心
校园网络安全宣传海报
日照网络技术招聘
勒索数据库安全吗
网络安全班会免费课件
泸州鸣思网络技术
激战二服务器wg
数据库技术及应用王成良
六网口网络安全硬件设备价位
鸿运科技互联网有限公司
电力全员安全网络安全考试
voip软件开发 上海
书店数据库管理系统设计
软件开发有几种开发模式
数据库字段如何修改
陕西浪潮服务器虚拟化操作云主机
数据库会自己停止掉啥情况
VB软件开发单机版考试系统
芝罘区定制软件开发
桂林市卓友软件开发有限责任公司
日本软件开发的工资
吉林在家学英语的软件开发
web安全测试服务器
上海通用软件开发均价
北京华居天下网络技术公司
美团外卖软件开发
数据库概论考研范围
端游吃鸡服务器维护有公告吗
网络安全法第59条司法解释
网络安全工作状态