<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
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);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
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(new Color(255,255,255));
g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
分享到:
相关推荐
php产生随机密码的多种方法供大家资源共享,新方法!多思路!
经过本人测试,没有问题的
一个自己写的基于ios的密码随即生成器,一个密码本,支持用户登录云端与本地存储
登录验证码是每个网站登录时的基本标配,网上也有很多相应的文章, 但是从生成验证码到 应用到自己的网站上的全步骤,并没有看到很多, 为了节约大家的时间,我把整体步骤写下来, 即拿即用哈 1. 生成随机验证码 ...
当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复...登录网站、电子邮箱和银行取款时输入的“密码”其实严格来讲应该仅被称作“口令”,因为它不是本来意义上的“加密代码”,但是也可以称为秘密的号码。
将随机码存入:Session(“SafeCode”) 验证文件:ChkSafeCode.ASP (4)验证图像的生成 一个BMP文件大体上分成图像文件头(BitmapFileHeader)、图像信息头(BitmapInfoHeader)、调色板(Palette)和图像数据...
NULL 博文链接:https://qingwei201314.iteye.com/blog/1113682
该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 – 122 位对应 a – z 的...
登录注册手机号验证判断密码难度,密码一致,随机验证码,和一致等
在众多随机验证码控件中多数不是给予session就是给予cookie的随机验证码,但都有缺陷 (1)使用session,当用户很多时,服务器负荷验证增加,(2)客户端会反复出现验证不正确的现象 使用cookie,保存在客户端又不安全 ...
Android随机生成验证码,Android利用随机数绘制不规则的验证码,加强用户登录或者注册的安全性 具体思路如下: 在一块固定宽高的画布上,画上固定个数的随机数字和字母,再画上固定条数的干扰线 随机数和干扰线的颜色...
具体使用流程如下:网民微信关注公众号“湖北公安政务平台”后注册登录➞进入微警务选择我的证件(身份证)➞点击查看随机码进行人脸识别比对后可获取随机码➞在PubwinOL服务端按快捷键Ctrl+3弹出湖北微警务身份证...
随机生成手机验证码的java源码文件,结果是在后台输出,可根据选择生成几位随机码或者随机码是否带有字母。
C#写的使用伪随机数加密技术加密用户登录密码的软件 可以作为课程设计
随机密码创建了一个密码生成器,以帮助人们创建安全密码,因此没有人可以获取其登录信息。 在随机密码文件中复制了index.html,style.css和script.js。 创建了一个数组列表,以便能够选择要随机选择的字符 创建了一...
随机生成设定验证码,并随机旋转一定角度,字体颜色不同
她不仅仅能帮助您记住普通密码信息,还可以记录网站登录密码、软件注册码、Email帐户密码甚至FTP帐户密码等信息;通过集成的随机密码生成器,可以节约您的时间并让密码具有更强的安全性。文件登录主密码采用SHA不...
一款简单的随机抽选软件,默认登录用户名、密码:admin/123456。
随机号码、随机密码,自定类型、检测强度,牢不可破。 私人目录,自动定位,即时修复,跟随锁定,便携好管。 自动备份,四种方案,网络备份,定期提醒,不怕意外。 打印输出,可携可藏,自由交互;每日一帖,上手...
《幸运星随机摇奖系统》:该软件最新设计,融合各家之长,适合用于各单位年终摇奖、晚会摇奖、商场促销摇奖、展销会摇奖、房展摇奖、车展摇奖等,软件也可用于各单位各部门在日常工作中随机分配任务。主要功能和特点...