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中,生成校验码通常涉及到以下类库和方法: 1. **CRC32**:Java标准库中的`java.util.zip.CRC32`类可以用来计算CRC32校验码。它是一个长整型变量,通过对输入数据的每一位进行累加计算,最后得到的值就是CRC...
在“C# 校验码生成程序”这个项目中,开发者使用了C#编程语言在Visual Studio 2008环境下创建了一个能够自动生成校验码的工具。这个工具不仅能够生成校验码,还能将生成的校验码转化为图片格式,方便在网页或应用中...
6. **生成校验码**:处理完数据后,寄存器中的剩余值即为CRC校验码,将其添加到数据的末尾。 在CRC校验码生成器中,用户输入待校验的报文,程序会按照上述过程计算出校验码。如果数据在传输或存储过程中发生错误,...
在JAVA中,生成MD5校验码涉及到以下几个关键知识点: 1. **`java.security.MessageDigest` 类**:这是Java标准库提供的一个类,用于实现各种散列算法,包括MD5。通过`getInstance("MD5")`方法可以获得MD5的实例。 ...
例如,可能有一个名为`LrcChecker`的类,其中定义了`calculateLRC`方法,用于处理输入数据并生成校验码。 ### 5. 结合实际应用 LRC校验码广泛应用于通信协议中,如UART、MODBUS等。在这些协议中,接收端会计算接收...
首先,`checkcode.asp`是主要的源代码文件,它包含了生成校验码的核心逻辑。在ASP中,这通常涉及到以下几个步骤: 1. **生成随机数据**:校验码的生成通常基于随机数,这可以通过内置的VBScript `Rnd` 函数来实现。...
在编码学中,算法的应用十分广泛,除了用于生成校验码外,还可以用于错误检测、纠正以及信息的加密和解密等。 7. 线性代数在编码学中的应用 编码学的基础之一是线性代数。通过线性代数中的向量和矩阵理论,可以建立...
CRC校验码生成工具,CRC校验码生成工具,CRC校验码生成工具
1. **理解CRC原理**:CRC基于多项式除法,通过计算数据的二进制表示与预设的CRC多项式之间的余数来生成校验码。CRC24a的多项式通常是`0x1864CFB`。这个过程模拟了二进制除法,但不需要实际的除法操作,而是通过移位...
5. 生成校验码:除法结束后,未被改变的高位就是CRC校验码。 码块分割是指将大的数据流分割成较小的部分,每个部分分别计算CRC校验码。这样做有助于分段传输和校验,即使某个部分在传输过程中出现错误,也只需重新...
IMEI校验码,也称为ImeiCheckDigit,其主要功能是对IMEI前14位数字进行计算,生成一个校验位,使得IMEI满足模10的Luhn算法,即经过校验位计算后整个IMEI号码的和能被10整除。Luhn算法,又称模10校验算法,广泛应用于...
MODBUS调试工具包中的CRC校验码自动计算功能可以快速地为MODBUS报文生成或验证CRC值,极大地提高了调试效率。用户只需输入数据,工具会自动生成对应的CRC码,也可以输入CRC码检查数据的正确性。 进制转换是另一个...
在本文中,我们将深入探讨LRC校验码的原理、生成方法以及C++实现的细节。 LRC校验码的原理: LRC校验码是一种逐位校验的方式,其主要目的是检测数据传输或存储过程中可能出现的一位错误。它通过将数据流中的每一位...
在C#中实现CRC16校验码生成,主要涉及以下几个核心知识点: 1. **CRC原理**:CRC的基本思想是通过附加一个固定长度的校验码来检测数据中的错误。这个校验码是根据数据按位运算后得到的,其计算过程类似于一种除法...
本资源包含CRC-4、5、6、7、8、16、32的非查表法实现,这是一种不依赖预先计算好的查找表而是通过数学运算生成校验码的方法。 CRC的基本原理是利用多项式除法,将数据看作是二进制系数的多项式,校验码则是除法的...
"生成校验码.exe"工具** 这款工具很可能是设计用于方便地生成和验证LRC校验码的桌面应用程序。用户可以输入数据,工具会自动计算并添加LRC校验位,同时提供验证功能,以确认数据的完整性和准确性。使用这类工具能...
3. **生成校验码**:完成累加后得到的结果即为BCC校验码。通常,该值会以补码形式存储,即取反加1,以增加检测错误的能力。 4. **附加上述校验码**:将计算得到的校验码添加到数据块的末尾,形成完整的数据包。 ###...
利用python的语法调用qt库实现python的GUI。 1. 给出一串16进制数(必须是偶数个)通过CRC16校验算法生成校验码 2. 将校验码通过高低字节互换显示 3.显示10进制的校验码 4. 可通过快捷键来操作
生成多项式是一个特定的二进制数,用于生成校验码。在CRC16中,常见的生成多项式有如CRC-CCITT (X^16 + X^12 + X^5 + 1) 和 CRC-IBM (X^16 + X^15 + X^2 + 1)。计算过程中,原始数据被看作是一个二进制多项式,然后...