用java生成一个附加码。
2006-05-22 13:00
435 查看
好久没有写个东西了.最近好忙.希望大家能够用的上这个附加码.
/**
*@作者 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() {
}
}
/**
*@作者 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() {
}
}
相关文章推荐
- 生成一个唯一的6位字符编码(到2063年前一直生效)的JAVA 方法
- java随机生成一个n bit位的长质数
- 一个JAVA小项目--Web应用自动生成Word
- Java生成一个exel文件并写入内容
- 如何控制JAVA中一个类只能生成一个对象?
- 生成一个java编制的可执行文件
- MAVEN的安装及用maven命令生成一个普通的java项目
- Ant生成一个简单的Java项目
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 用java写一个简单的随机生成井字棋棋子的程序
- 一个命令搞定Java Web通用添删改查及分页代码生成(音视频)
- Excel Report 一个小巧实用基于java实现的Excel报表生成工具
- 通过Eclipse创建一个Project ,Java Project 和Tomcat Project 生成的目录和文件
- Java开发小工具(1)(生成一个可执行的jar包)
- hibernate 配置文件 和一个 id生成类BaseEntity.java 和一个hibernate工具类 HibernatUtils.java
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- java图形编程--生成一个窗口的步骤
- java随机生成一个n bit位的长质数
- java方法能自动生成000到999之间的一个字符
- 一个java生成与使用WebService的简单例子