- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告
课名称: 计算机图形学
实验名称: 验证码的生成与识别
专 业:
班 级:
学 号:
学生姓名:
指导教师:
年 月 日 2
一、 验证码的设计与实现 3
1.验证码生成的处理流程图 3
2.验证码生成的程序流程图 3
3. 验证码程序的验证流程图 4
4.验证码程序活动图 5
5.程序运行截图 5
二、 产生随机数和字符的设计与实现 6
三、 添加干扰功能的设计与实现 7
四、 结束语 8
五、 源程序(JAVA) 8
验证码的设计与实现
1.验证码生成的处理流程图
2.验证码生成的程序流程图
图片大小:68px*22px
字符来源:数组char[]包含:26个英文字符和0-9的数字
字符和背景颜色区域:(0-200,0-150,0-255)
输出图片格式:JPG
干扰线:100条
噪点:1000个
验证码程序的验证流程图
开始是从验证页面开始的,在验证页面的输入框输入验证码,输入框的到输入的验证码后转发给处理验证码的LoginServlet与其中在ImageServlet中随机生成的验证码作比较,如果相同,则跳转验证成功页面,如果不同跳转验证失败页面。
4.验证码程序活动图
程序流程图对应的是验证码的设计流程图,其中在验证界面里中,包含着转发信息,而验证码的生成与识别全在Servlet中进行的,验证界面仅仅是转发机制实现数据的获取与发送。其中在ImageServlet中设计了图片的大小、字符的来源、干扰线和噪声,在LoginServlet中设计了验证码的识别与获取输入的验证信息,这就是整体流程。
5.程序运行截图
生成验证码
刷新验证码
输入与验证成功
输入与验证失败
产生随机数和字符的设计与实现
这次的验证码的设计与实现我是用java语言来完成的,所以对于随机数和字母的产生,这里要用的最基本的random的知识,下面是代码的实现:
s = new String[4];
s[0] = setRndomString()[random.nextInt(62)];
s[1] = setRndomString()[random.nextInt(62)];
s[2] = setRndomString()[random.nextInt(62)];
s[3] = setRndomString()[random.nextInt(62)];
// 随机生成四个字符大小和位置,并将字符画到图片上
g.setFont(new Font(Times New Roman, Font.PLAIN, 30 + random
.nextInt(20)));
g.setColor(new Color(20 + random.nextInt(110),
20 + random.nextInt(110), 20 + random.nextInt(110)));
g.drawString(s[0], 20 + random.nextInt(15), 40 + random.nextInt(30));
g.setFont(new Font(Times New Roman, Font.PLAIN, 30 + random
.nextInt(20)));
g.setColor(new Color(20 + random.nextInt(110),
20 + random.nextInt(110), 20 + random.nextInt(110)));
g.drawString(s[1], 50 + random.nextInt(15), 40 + random.nextInt(30));
g.setFont(new Font(Times New Roman, Font.PLAIN, 30 + random
.nextInt(20)));
g.setColor(new Color(20 + random.nextInt(110),
20 + random.nextInt(110), 20 + random.nextInt(110)));
g.drawString(s[2], 90 + random.nextInt(15), 40 + random.nextI
文档评论(0)