用java生成一个附加码。

原创 2006年05月22日 13:00:00

好久没有写个东西了.最近好忙.希望大家能够用的上这个附加码.
/**
*@作者 pxjianke
*@目标  生成附加码,免得别人破解密码
*
*/

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() {
  }
}

相关文章推荐

GIF动画附加码的例子JAVA版本

GIF动画附加码,原来有一个PHP版本,但是最近项目用到JAVA所以废弃了PHP版本。 java版本核心类是Captcha类,代码如下: package com.youqian.util.gi...

JAVAocr图像网页附加码解析读取

  • 2013年03月10日 20:24
  • 3.04MB
  • 下载

全面认识网页中附加码的作用

喜欢网络冲浪的你,一定遇到过这样的情况,那就是在输入用户名和密码之后还要输入附加码。知其然不知其所以然,许多朋友对附加码的真正作用都不了解。那么附加码到底有什么作用,为什么要使用附加码呢?本文将告诉你...

java-Base64加码解码类

package com.base64; import java.io.UnsupportedEncodingException; final class Base64 { private Bas...

太极码分段加码DOC文件

  • 2006年03月16日 00:00
  • 465KB
  • 下载

QQ游览加码

  • 2013年06月09日 16:08
  • 75KB
  • 下载

感谢支持,超预期重印并加码

今天,要向广大读者朋友带来一个,连我自己和出版社都感到十分意外的好消息,几天前接到出版社的通知,说今年元月出版的《Cisco/H3C交换机配置与管理完全手册》(第二版)马上就要下单重印了,而且一下子重...
  • lycb_gz
  • lycb_gz
  • 2012年05月22日 14:33
  • 2686

Utf8加码和解码

  • 2013年07月19日 12:12
  • 160KB
  • 下载

Base64 加码解码器

  • 2008年04月14日 15:19
  • 21KB
  • 下载

Base64 (ios)加码与解码

解码 -(NSData*)base64Decode:(NSString *)string { unsigned long ixtext, lentext; unsigned char...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用java生成一个附加码。
举报原因:
原因补充:

(最多只允许输入30个字)