checkcode.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%> <%!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); }%> <% out.clear();//è¿å¥é对resinæå¡å¨ï¼å¦ææ¯tomacatå¯ä»¥ä¸è¦è¿å¥ 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(getRandColor(160, 200)); for (int i = 0; i < 155; 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); } 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("checkcode", sRand); g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream()); response.getOutputStream().close(); out.clear(); out = pageContext.pushBody(); %>
login.jsp
<div class="code"> 验证码:<span><input maxlength="20" size="13" name="checkcode" class="code_input" id="checkcode" onKeyUp="this.value=this.value.replace(/\D*(\d*\.?\d{0,2})\d*\D*/g,'$1')"></span> <span><a href="#"> <img src="${ctx}/common/checkcode.jsp" width="60" height="20" border="0" class="code_img" id="checkcode_img" onclick="refreshCode();" /></a></span> </div>
javascript:
function refreshCode(){ $("#checkcode_img").attr("src","${ctx}/common/checkcode.jsp?random="+Math.random()); }
相关推荐
使用java生成校验码,并把校验码的生成与使用放到web项目中,里面有详细的使用说明及源代码
NULL 博文链接:https://eof.iteye.com/blog/2152405
CRC校验码生成工具,CRC校验码生成工具,CRC校验码生成工具
VS2008 下校验码生成项目,可自动生成校验码,产生图片格式的校验码~~~~~~~~~~~~~~~~~~~~~~~~~~
用c++写的一个lrc校验码生成工具
利用python的语法调用qt库实现python的GUI。 1. 给出一串16进制数(必须是偶数个)通过CRC16校验算法生成校验码 2. 将校验码通过高低字节互换显示 3.显示10进制的校验码 4. 可通过快捷键来操作
Java实现MD5大文件校验码详细解析: 包括具体方法解释、注释 通俗易懂、易于理解
1.C# CRC 16 校验码生成源码; 2.CRC-16 MODBUG; 3.C#写的CRC16检验算法;
ESN校验码生成软件
将十六进制字符串中的数(长度不限)累加求和,取累加和最低一个字节,生成CheckSum校验码。例如十六进制字符串:01 03 00 10 00 4D 31 30 30 20 32 36 64 42 6D 20 56 31 2E 30,生成CheckSum校验码为92(十六进制)...
一款CRC16的校验码生成工具,可以自己设置校验码生成多项式,可以对十六进制序列和文件进行校验,得出16位CRC校验码。字符串需要输入ASCii码形式,例如:AE 13 4F 78 0C 90 A0 B1,每两个中间要加空格,当校验多项式...
用于汽车等机械第九位校验码的生成,只需要输入前8位和后8位即可。第九位可以自动生成,用于汽车等机械第九位校验码的生成,只需要输入前8位和后8位即可。第九位可以自动生成,
生成CRC源码,需要首先进行初始化,在根据输入串产生该串的CRC校验码
校验码生成工具软件包
自动对S19文件不连续地址分块,内部数据校验,生成校验码,适合用于UDS协议刷写ECU前对S19文件的处理。
crc16校验码生成工具,MFC可执行程序
本软件不包含任何插件,可以放心使用,只作为学习交流用。 功能:1、生成CRC校验码,可选多项式正序和多项式逆序(Modbus校验码)的方式。2、可选是否显示空格,方便复制处理
Modbus RTU CRC-16校验码生成器 CRC_Calc v0.3 这是最新版,多达21种CRC生成公式。体积小巧,免安装,是程序员工程师必备的神器,巴拉巴拉