好久没有写个东西了.最近好忙.希望大家能够用的上这个附加码.
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.awt.Font;
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import java.awt.Color;
import com.encrypts.StringEncrypt;
public class AuthImgServlet
extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
private static char numbersAndLetters[] =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
private Font mFont = new Font("Times New Roman", Font.BOLD, 14);
public AuthImgServlet() {
}
//Initialize global variables
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType("image/jpeg");
ServletOutputStream out = response.getOutputStream();
BufferedImage image = new BufferedImage(70, 17, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, 70, 17);
g.setColor(Color.red);
g.setFont(mFont);
String temp=getStringCode(6);
HttpSession hs=request.getSession();
hs.setAttribute("createImage",(new StringEncrypt(temp.toLowerCase())).toString());
for(int i=0;i<6;i++){
g.drawString(temp.substring(i,i+1),i*11+2,14);
}
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
private String getStringCode(int len) {
StringBuffer strCode = new StringBuffer();
int nRand = (int) Math.round(Math.random() * 100D);
for (int i = 0; i < len; i++) {
nRand = (int) Math.round(Math.random() * 100D);
strCode.append(numbersAndLetters[nRand % (numbersAndLetters.length - 1)]);
}
return strCode.toString();
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
}
相关推荐
加盐是在原始密码上附加一个随机字符串,这个随机字符串就是盐。这样,即使两个用户有相同的密码,加盐后的哈希值也会因为盐的不同而不同,大大增加了破解的难度。盐应当存储起来,以便在验证密码时使用。 在Java中...
使用ZXing,你可以创建一个`BitMatrix`对象,然后用它来生成PNG、JPEG或其他图像格式的条码。 4. **集成到应用**:将条码生成功能集成到你的Java应用程序中,可能需要创建一个服务或工具类,提供生成条码的接口。这...
为了方便在Web项目中使用,你可以创建一个`ChecksumService`,提供生成和验证校验码的接口,然后在控制器或业务逻辑中调用这些服务。 ```java @Service public class ChecksumService { public String generateCRC...
首先,`commons-lang.jar`是一个由Apache Commons项目提供的Java类库,它包含了大量方便实用的工具类,其中包括用于生成随机字符串的工具。在Java中,我们可以使用`org.apache.commons.lang3.RandomStringUtils`类来...
Java获取小程序带参二维码(太阳码)调用官方接口B 实现带参二维码获取,下载复制就可使用
某杂志实践与经验论文,介绍了当前附加码验证的一般原理和主要的实现方法,着重探讨了用JAVA技术实现网站附加码验证的生成、校验原理,并给出了实现的源代码
1. **生成多项式**:在本例中使用了一个简化的CRC-4多项式 `0b0011`(即 \(x^3 + x + 1\)),而不是实际应用中的CRC-32或其他标准CRC多项式。 2. **初始化值**:根据不同的协议,CRC的初始值可能会有所不同。在这...
例如,可能有一个名为`LrcChecker`的类,其中定义了`calculateLRC`方法,用于处理输入数据并生成校验码。 ### 5. 结合实际应用 LRC校验码广泛应用于通信协议中,如UART、MODBUS等。在这些协议中,接收端会计算接收...
在Java Web开发中,实现一个具有“记住我”功能的登录页面是一项常见的需求。这个功能允许用户在选择“记住用户名和密码”后,下一次访问网站时,系统能自动填充登录表单,提供便捷的用户体验。这个过程涉及到浏览器...
此外,项目中提到了“zxing-3.3.3.jar”文件,这是ZXing(Zebra Crossing)的Java版本,这是一个开源的多格式一维/二维条码图像处理库。ZXing支持QR码(Quick Response Code)和其他多种条码格式的读取、生成和解码...
这个例子中,我们使用了PBKDF2(Password-Based Key Derivation Function 2)算法,它是一个更加强大的密码派生函数,支持加盐和迭代次数,能有效抵御彩虹表攻击。 总结一下,Java中的密码加密与解密主要涉及哈希...
CRC16的基本原理是通过一个特定的多项式,对原始数据进行除法运算,然后将得到的余数作为校验码附加到数据后面。这个特定的多项式通常用二进制表示,例如,常用的CRC16-CCITT多项式为X^16 + X^12 + X^5 + 1,对应的...
这个生成多项式通常是一个固定的二进制序列,例如常用的CRC16-CCITT(XModem)使用的生成多项式是0x1021,而CRC16-Kermit使用的生成多项式是0x8408。在运算过程中,如果原始数据的末尾是0,那么最后得到的余数就是...
在Java编程语言中,表达式解析是程序设计中的一个关键环节,它涉及到将人类可读的数学或逻辑表达式转化为计算机能理解的形式。这个过程通常由编译器或解释器执行,以便执行相应的计算或操作。这篇博客文章,虽然链接...
- **盐(Salt)** 是一个随机生成的字符串,它的目的是为了避免相同的明文密码产生相同的哈希值,增加破解难度。 - **SSHA** 是在SHA的基础上,先将密码与盐值拼接,然后计算SHA哈希,最后将盐值附加到哈希结果的...
在本压缩包“基于Java的源码-附加数据库.zip”中,我们主要关注的是使用Java编程语言进行数据库操作的相关知识。Java作为一种广泛使用的高级编程语言,尤其在企业级应用开发中,与数据库的交互是必不可少的。以下是...
"barcode4j"是这个话题的一个关键点,它是一个开源Java库,用于生成条形码图像。Barcode4J支持多种条形码格式,包括Code39、EAN-13、UPC-A等,并且可以根据需求定制,比如添加日期和增量信息。这个库提供了XML驱动的...
当Java源代码被编译后,生成的就是字节码。字节码使得Java具有跨平台性,因为JVM负责将字节码转换为特定硬件平台的机器指令。字节码也可以被反编译,用于分析代码逻辑或进行动态代码修改,如Java代理。 **类加载...
这里是用java写的一个快递柜管理系统,分为寄存和取出两个操作,寄存的时候快递柜有大、中、小之分,需要自己选择。成功的寄存之后,会生成一个6位数的取件码。可以凭借这个取件码完成取件(也就是快递员把快递放到...
ZXing(又称为“ZXing库”或“二维码扫描器”)是一个开源Java库,它支持多种一维条形码和二维条码格式,包括但不限于QRCode、DataMatrix、UPC-A、EAN-13等。该库不仅提供Java版本,还支持Android和iOS平台,使得...