- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于颜色顺序的验证码
基于颜色顺序的验证码实验报告
本组成员:楚洪波(组长)
黄日强 刘巨富 曾 丽 阳小薇 史小洋 毛 志
软件工程二班
实验名称:基于颜色顺序的验证码
实验目的:采用产生颜色字符和随机颜色序列提高了验证码的智能型,降低黑客暴力破解的风险
验证码简介
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。
1、我们使用画图函数在软件本身的一个特定区域进行画图。直接省略了生成图片和显示图片的步骤,省去中间的一些业务环节。
2、采用产生颜色字符和随机颜色序列,提高了验证码的智能型,更多需要人的智力去判断 。
基于颜色顺序的验证码的优势:
1、以往的验证码都是使用在网络方面,在本地方面实现的比较少,本地实现图片的更换遇到了困难,以前程序所写的方法存在着实现不了验证码的更换的危险 。基于颜色的验证码使用画图函数,至此验证码更换的问题得到解决。
2、采用产生颜色字符和随机颜色序列,提高了验证码的智能型,更多需要人的智力去判断,在给黑客破解时产生了一些的难度。
我们现有程度的实验缺陷:
1、未能结合密码保护软件的方法,做成一个拥有密码保护和验证码验证统一的软件
2、软件的稳定性、颜色的设置还可以改进
关键代码:
1、窗口布局
public class CheckImage;
private void initialize()
窗口布局中,监听点击验证码区域更换图片事件
editorPane.addMouseListener(new MouseListener()
窗口布局中,监听点击提交按钮,提交验证码并且验证事件
btnHuan.addActionListener(new ActionListener()
2、产生n个在0到n无重复数字的随机序列并将这个序列存入一个数组
void createRandom(int len,int[] aa){
while(len0){
Random r1 = new Random();
int temp=r1.nextInt(len);
int tt = aa[temp];
aa[temp]=aa[len];
aa[len]=tt;
len--;
}
}
3、产生验证码的方法
public void createImag(){
int lenth=3;
//创建随机数类
int width = 200, //图片宽度
height = 80, //图片高度
fontSize = 20, //字体大小
codeLength = 4; //验证码长度
//获得验证码editorPane区域上下文
Graphics g=editorPane.getGraphics();
//设置图片的背景颜色并且填充整个区域
g.setColor(new Color(255,255,255));
g.fillRect(0,0, width, height);
//设置字体
g.setFont(new Font(Times New Roman, 0, fontSize));
g.setColor(createColor(r,170,200));
//画100条干扰线,不让其他程序来识别该图片
for(int i=0;i100;i++){
int x = r.nextInt(width);
int y = r.nextInt(height);
int _x = r.nextInt(11);
int _y = r.nextInt(11);
g.drawLine(x, y, x+_x, y+_y);
}
createRandom(lenth,a);
/*我们将顺序产生的四种不同颜色的字符所对应的顺序颜色存入一个颜色数组cl[]里面; */
StringBuffer ssrand = new StringBuffer();
for(int i=0;ico
您可能关注的文档
最近下载
- Unit 5 We’re family 第1课时(Get ready)(课件)外研版(三起)(2024)英语三年级上册.pptx
- 中国民间传说:田螺姑娘.ppt
- 医院岗位风险分级监管制度.docx VIP
- 八年级班级工作计划第一学期.pdf VIP
- 甘肃省平凉崆峒区2024年中考联考数学试卷含解析.doc
- 硅片加工表面抛光.ppt
- 正大猪三宝饲料推广会流程和操作实务.ppt
- 安徽省腰椎间盘突出症分级诊疗指南(2015年版)安徽省医学会(发布时间:2016-01).pdf VIP
- 国家食品安全抽样检验抽样单&填表说明.doc
- TASCAM达斯冠专业音响CD-RW901MKII说明书用户手册(1).pdf
文档评论(0)