社区
Web 开发
帖子详情
请问如何用数字和字母生成验证码
wzx7934003
2006-02-20 04:15:42
请问如何用数字和字母混合生成验证码
...全文
323
3
打赏
收藏
请问如何用数字和字母生成验证码
请问如何用数字和字母混合生成验证码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bitou
2006-02-21
打赏
举报
回复
建议引用apache的随机类,很方便
commons-lang.jar
import org.apache.commons.lang.RandomStringUtils;
RandomStringUtils.random(6,true,true);
此方法将产生6位包括字母和数字的随机数
uupo
2006-02-20
打赏
举报
回复
package uuposystem.Web;
/**
*
* <p>Title:石翮JAVA平台</p>
* <p>Description:创建图形验证码</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author 石翮
* @version 1.0
*/
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.LinkedList;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
//import java.awt.Graphics;
public class CreateValidImage {
public String sRand="";
public CreateValidImage(){
}
public 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);
}
/**
* 通过文件创建图像
* 格式为jpg类型
* */
public void creatImage(String fileName,String content){
//在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics2D g = image.createGraphics();
//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(Color.black);//黑色文字
g.drawString(content,10,15);
g.dispose();
try{
File f=new File(fileName);
if(!f.exists()){
f.createNewFile();
}else{
Thread.sleep(200);
f.delete();
f.createNewFile();
}
ImageIO.write(image, "jpg", f);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 创建图像
* 格式为jpg类型
* @param content - String 图片输出内容
* @return java.awt.image.BufferedImage
* @since 2005-7-19
* */
public BufferedImage getBufferedImage(String content){
int width=60, height=20;
return getBufferedImage(content,width,height);
}
/**
* 创建图像
* 格式为jpg类型
* @param content - String 图片输出内容
* @param width - int 图片宽度
* @param height - int 图片高度
* @return java.awt.image.BufferedImage
* @since 2005-7-19
* */
public BufferedImage getBufferedImage(String content,int width,int height){
//在内存中创建图象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics2D g = image.createGraphics();
//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(Color.black);//黑色文字
g.drawString(content,10,15);
g.dispose();
return image;
}
/**
* 将现有BufferedImage融合进Response
* @param response - javax.servlet.http.ServletResponse 将使用的response对象
* @param img - java.awt.image.BufferedImage
* @since 2005-7-19
* */
public void response(HttpServletResponse response,BufferedImage img){
try{
response.setContentType("image/jpg;charset=GB2312");//设定输出的类型
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(img);//对图片进行输出编码
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 返回一个4位的验证码
* */
public String getContent() throws InterruptedException{
String content="";
for(int i=0;i<4;i++){
content+=getChar();
Thread.sleep(new Random().nextInt(10)+10);//休眠以控制字符的重复问题
}
return content;
}
/**
* 获取随机字符
* */
public char getChar(){
Random random=new Random();
char ch='0';
LinkedList ls=new LinkedList();
for(int i=0;i<10;i++){//0-9
ls.add(String.valueOf(48+i));
}
for(int i=0;i<26;i++){//A-Z
ls.add(String.valueOf(65+i));
}
for(int i=0;i<26;i++){//a-z
ls.add(String.valueOf(97+i));
}
int index=random.nextInt(ls.size());
if(index>(ls.size()-1)){
index=ls.size()-1;
}
ch=(char)Integer.parseInt(String.valueOf(ls.get(index)));
return ch;
}
/**
测试
*/
public static void main(String []args) throws Exception{
CreateValidImage c=new CreateValidImage();
c.creatImage("me.jpg",c.getContent());
}
}
interpb
2006-02-20
打赏
举报
回复
用servlet 很容易实现
自己找找代码
!
用Python
生成
验证码
,
验证码
由
字母
和
数字
组成
本文介绍了如何使用Python
生成
字母
和
数字
组成的
验证码
。通过random模块的randint和chr函数随机
生成
数字
和
字母
,并利用choice函数从
字母
和
数字
的列表中选择组合,最终形成随机
验证码
。
生成
数字
类型
验证码
和
数字
+
字母
类型
验证码
的区别
本文详细介绍了如何使用TensorFlow和Python
生成
数字
及
数字
加
字母
形式的
验证码
,包括代码实现和
生成
过程,为图像识别和机器学习项目提供数据准备。
在网页上
生成
由
字母
和
数字
组成
验证码
的简单实现
这篇博客展示了如何在网页上实现一个简单的
验证码
生成
器,
验证码
由
字母
和
数字
组合而成,提供了一段相关的代码示例。
数字
和
字母
组合并
生成
图片的
验证码
祥解
本文详细介绍了一种
数字
和
字母
随机组合的
验证码
生成
方法,包括
生成
随机
验证码
的算法和使用ASP图象组件ShotGraph
生成
图片
验证码
的过程。
Web 开发
81,111
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章