`
pxjianke
  • 浏览: 21973 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

用java生成一个附加码

    博客分类:
  • java
 
阅读更多

好久没有写个东西了.最近好忙.希望大家能够用的上这个附加码.
 

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生成md5密码加盐

    加盐是在原始密码上附加一个随机字符串,这个随机字符串就是盐。这样,即使两个用户有相同的密码,加盐后的哈希值也会因为盐的不同而不同,大大增加了破解的难度。盐应当存储起来,以便在验证密码时使用。 在Java中...

    Java 生成校验码及校验码判断

    为了方便在Web项目中使用,你可以创建一个`ChecksumService`,提供生成和验证校验码的接口,然后在控制器或业务逻辑中调用这些服务。 ```java @Service public class ChecksumService { public String generateCRC...

    自动生成随机密码

    首先,`commons-lang.jar`是一个由Apache Commons项目提供的Java类库,它包含了大量方便实用的工具类,其中包括用于生成随机字符串的工具。在Java中,我们可以使用`org.apache.commons.lang3.RandomStringUtils`类来...

    Java获取小程序带参二维码(太阳码)

    Java获取小程序带参二维码(太阳码)调用官方接口B 实现带参二维码获取,下载复制就可使用

    基于Java的附加码验证原理及其实现

    某杂志实践与经验论文,介绍了当前附加码验证的一般原理和主要的实现方法,着重探讨了用JAVA技术实现网站附加码验证的生成、校验原理,并给出了实现的源代码

    Java 实现CRC码算法(含实现原理和步骤)

    1. **生成多项式**:在本例中使用了一个简化的CRC-4多项式 `0b0011`(即 \(x^3 + x + 1\)),而不是实际应用中的CRC-32或其他标准CRC多项式。 2. **初始化值**:根据不同的协议,CRC的初始值可能会有所不同。在这...

    MyEclipse注册码生成(Java代码)

    5. **校验码计算**:最后,通过一种特殊的算法计算出一个校验码,将其附加到前面构造好的字符串末尾,从而形成最终的注册码。 ### 具体实现步骤 1. **创建Java项目**:首先,需要在开发环境中创建一个新的Java项目...

    LRC校验码自动生成

    例如,可能有一个名为`LrcChecker`的类,其中定义了`calculateLRC`方法,用于处理输入数据并生成校验码。 ### 5. 结合实际应用 LRC校验码广泛应用于通信协议中,如UART、MODBUS等。在这些协议中,接收端会计算接收...

    Java Web登录自动填入用户名密码

    在Java Web开发中,实现一个具有“记住我”功能的登录页面是一项常见的需求。这个功能允许用户在选择“记住用户名和密码”后,下一次访问网站时,系统能自动填充登录表单,提供便捷的用户体验。这个过程涉及到浏览器...

    电子发票源代码(java)

    此外,项目中提到了“zxing-3.3.3.jar”文件,这是ZXing(Zebra Crossing)的Java版本,这是一个开源的多格式一维/二维条码图像处理库。ZXing支持QR码(Quick Response Code)和其他多种条码格式的读取、生成和解码...

    java密码加密与解密

    这个例子中,我们使用了PBKDF2(Password-Based Key Derivation Function 2)算法,它是一个更加强大的密码派生函数,支持加盐和迭代次数,能有效抵御彩虹表攻击。 总结一下,Java中的密码加密与解密主要涉及哈希...

    CRC16检验码生成+二维码生成

    CRC16的基本原理是通过一个特定的多项式,对原始数据进行除法运算,然后将得到的余数作为校验码附加到数据后面。这个特定的多项式通常用二进制表示,例如,常用的CRC16-CCITT多项式为X^16 + X^12 + X^5 + 1,对应的...

    java表达式解析,附加

    在Java编程语言中,表达式解析是程序设计中的一个关键环节,它涉及到将人类可读的数学或逻辑表达式转化为计算机能理解的形式。这个过程通常由编译器或解释器执行,以便执行相应的计算或操作。这篇博客文章,虽然链接...

    java实现CRC16校验功能

    这个生成多项式通常是一个固定的二进制序列,例如常用的CRC16-CCITT(XModem)使用的生成多项式是0x1021,而CRC16-Kermit使用的生成多项式是0x8408。在运算过程中,如果原始数据的末尾是0,那么最后得到的余数就是...

    java写快递柜管理系统

    这里是用java写的一个快递柜管理系统,分为寄存和取出两个操作,寄存的时候快递柜有大、中、小之分,需要自己选择。成功的寄存之后,会生成一个6位数的取件码。可以凭借这个取件码完成取件(也就是快递员把快递放到...

    基于Java的源码-附加数据库.zip

    在本压缩包“基于Java的源码-附加数据库.zip”中,我们主要关注的是使用Java编程语言进行数据库操作的相关知识。Java作为一种广泛使用的高级编程语言,尤其在企业级应用开发中,与数据库的交互是必不可少的。以下是...

    barcode生成条形码带日期与增量

    "barcode4j"是这个话题的一个关键点,它是一个开源Java库,用于生成条形码图像。Barcode4J支持多种条形码格式,包括Code39、EAN-13、UPC-A等,并且可以根据需求定制,比如添加日期和增量信息。这个库提供了XML驱动的...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    ZXing(又称为“ZXing库”或“二维码扫描器”)是一个开源Java库,它支持多种一维条形码和二维条码格式,包括但不限于QRCode、DataMatrix、UPC-A、EAN-13等。该库不仅提供Java版本,还支持Android和iOS平台,使得...

    java注解_反射_字节码_类加载机制.zip

    当Java源代码被编译后,生成的就是字节码。字节码使得Java具有跨平台性,因为JVM负责将字节码转换为特定硬件平台的机器指令。字节码也可以被反编译,用于分析代码逻辑或进行动态代码修改,如Java代理。 **类加载...

    java条形码

    2. **JaBar**:这是一个简单的Java条形码生成库,专注于创建Code 128条形码。JaBar易于集成,适合那些只需要基本条形码功能的项目。 3. **Barcode4J**:它是一个可扩展的条形码生成解决方案,支持多种条形码格式,...

Global site tag (gtag.js) - Google Analytics