论文范文网-权威专业免费论文范文资源下载门户!
当前位置:毕业论文格式范文>论文范文>范文阅读
快捷分类: 文献标识码 文献标识码a 验证码论文 二维码开题报告 快乐码农期刊 学术期刊网站源码 论文检测平台源码 pcheck论文查重检测码

验证码类有关学年毕业论文范文 跟JaWeb应用中加模图片验证码的设计实现类毕业论文怎么写

分类:论文范文 原创主题:验证码论文 发表时间: 2024-03-18

JaWeb应用中加模图片验证码的设计实现,该文是验证码类有关论文写作技巧范文和JavaWeb和中加和验证码有关毕业论文格式模板范文.

[摘

要] 在各类网站及信息管理系统的开发中,验证码技术的应用越来越普遍.使用验证码技术可以有效地防止对网站及管理系统的暴力,有效地提升受保护数据的安全等级.文章介绍了在Ja Web开发过程中如何生成简易的验证码.

[关键词] Ja;验证码;安全

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 19. 067

[中图分类号] TP308

[文献标识码] A

[文章编号] 1673 - 0194(2018)19- 0155- 03

1.1

什么是验证码

验证码的英文是CAPTCHA,是一种区分用户是计算机和人的公共全自动程序.这个问题可以由计算机生成并评判,但是必须只有人类才能解答.由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类.

在实际应用中,验证码就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰,例如随机画数条直线、画一些点(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能.

1.2 验证码工作流程

服务器端随机生成验证码字符串,保存在内存中(一般是Web系统中的session对象),并写入图片,发送给浏览器端显示.用户登录或注册时,在浏览器端输入验证码图片中显示的字符串,然后提交给服务器端,服务器将提交的字符串和保存在session对象中的字符串进行比较,如果一致就继续下一步操作,否则就返回错误提示.

1.3 验证码的作用

验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作.互联行为的注册、登录、发帖、领优惠券、等等应用场景,都有被机器刷造成各类损失的风险,如果不对各类机器垃圾的行为加以防范,灌水内容、垃圾注册、恶意登录、、撞库、活动、垃圾广告、爬虫、羊毛党等用户行为一旦发生,将对产品自身发展、用户体验造成极大的影响.

由于验证码是随机生成的,并且图片中的背景和字符串都经过特殊处理,所以它可以很好地防止机器识别,可以防止对网站的批量注册、重复发帖、大量发送垃圾信息等;也可以防止对网站用户名的暴力,以及一些对网站的恶意攻击.

1.4 常见的验证码种类

1.4.1 纯数字或字母组合字符型验证码

这种验证码一般为4位,可能都是字母,也可能都是数字,随机的4位字符串,最原始的验证码,验证作用几乎为零,随着人们信息化水平的不断提高,此类验证码已经不再使用.

1.4.2 简易字符型图片验证码

目前比较常用的验证码,可能是字母或者数字,或者字母和数字的组合,验证作用比前一类好许多,但图片上的字符比较中规中矩,对于有图形图像知识基础的人来说也会被识破.在安全性要求较高的场合下此类验证码不会被使用.

1.4.3 加模字符型图片验证码

此类验证码复杂度比较高,字符可以是字母、数字、汉字,甚至一些特殊符号,另外可以是随机颜色、随机字体、随机扭曲,并带有随机性的背景干扰,所生成的验证码即便是对有图像识别功底的技术人员来说要想攻破都相当困难,这种验证码在安全性要求比较高的场合中使用频繁,如QQ申诉页面、百度注册页面等等.

1.4.4 问题型图片验证码

问题型验证码主要以问答的形式来进行填写,相对加模型验证码来说,此类验证码比较容易辨别和录入,系统可以生成诸如“1+1=?”的问题让用户进行回单,当然这样的问题是随机生成的.

另一种问题验证码则是文字形式的问题验证码,诸如生成问题“中国的全称是什么?”,当然还有些网站还在问题后面给出了提示答案,以方便用户作答.

加模字符型图片验证码的设计

验证效果和用户易于辨认这两者之间往往是矛盾的,经常是保证了很好的验证效果但同时也造成了用户在使用时几乎无法辨别,所以,一款优秀的验证码在设计时必须要早验证效果和易于用户辨别之间找到平衡点,其设计如图1所示.

加模字符型图片验证码的实现

3.1 验证码生成

(1)新建一个类,命名为VerifyPic,导入必要的包.

定义随机器,并定义验证码中可以出现的字符,包括常用字母、数字、汉字,剔除易产生混淆的字符.

(2)生成验证码的主方法,可以自定义字符数.

ImageWdth:验证码图片的宽度,为了保证字符排列不过于拥挤,设定每个字符宽度为35.

ImageHeight:验证码图片高度.

line_left:从左上到右下,需要添加的干扰线条数量.

line_right:从右上到左下,需要添加的干扰线条数量.

public String getCertPic(int num,OutputStream os){

BufferedImage bfImage = new BufferedImage(ImageWidth, ImageHeight,BufferedImage.TYPE_BYTE_INDEXED);

Graphics2D graphics = bfImage.createGraphics();

graphics.drawString(text, 10, 50);

//绘制验证字符串重影

layout.draw(graphics, 30, 60);

//X轴扭曲

this.shearImageX(graphics, bfImage.getWidth(), bfImage.getHeight(), c);

//Y轴扭曲

this.shearImageY(graphics, bfImage.getWidth(), bfImage.getHeight(), c);

//绘制干扰线条

this.drawInterferLine(graphics, ImageWidth, ImageHeight, line_left, line_right);

//绘制噪点

this.drawInterferDots(bfImage,ImageWidth, ImageHeight);

ImageIO.write(bfImage, "jpeg", os);

//将生成的图片以jpeg的格式写到输出流中生成图片.

return text;

(3)绘制限定数量的干扰线条.

for (int i = 0; i < line_left; i++) {

//此处省去定义干扰线条的横纵坐标x,y,xl,yl

g2d.drawLine(x, y, x + xl + 40, y + yl + 20);

for (int i = 0; i < line_right; i++) {

//此处省去定义干扰线条的横纵坐标x,y,xl,yl

g2d.drawLine(x, y, x - xl + 40, y - yl);

(4)为验证码图片设置一定数量的噪点.

//根据随机生成的噪点,显示到验证码区域

bfImage.setRGB(x, y, rgb);

(5)对生成的验证码字符进行适当的扭曲,以增加验证码的验证效果.

X轴方向扭曲:

for (int i = 0; i < h1; i++) {

double d = (double) (period >> 1)

* Math.sin((double) i / (double) period

+ (6.2831853071795862D * (double) phase)

/ (double) frames);

g.copyArea(0, i, w1, 1, (int) d, 0);

if (borderGap) {

g.setColor(color);

g.drawLine((int) d, i, 0, i);

g.drawLine((int) d + w1, i, w1, i);

Y轴方向扭曲:

for (int i = 0; i < w1; i++) {

double d = (double) (period >> 1)

* Math.sin((double) i / (double) period

+ (6.2831853071795862D * (double) phase)

/ (double) frames);

g.copyArea(i, 0, 1, h1, 0, (int) d);

if (borderGap) {

g.setColor(color);

g.drawLine(i, (int) d, i, 0);

g.drawLine(i, (int) d + h1, i, h1);

3.2 在页面中显示验证码

有了生成验证码的方法之后就可以使用了,使用验证码时,可以通过一个简单的servlet将其显示到jsp页面中.

新建一个Servlet,命名为GetCertPicServlet,其主要代码如下:

request.getSession().setAttribute("certCode", image.getCertPic(4, response.getOutputStream()).toLowerCase());

Jsp页面主要代码如下:

<a href="#"><img id="imgObj" src="VerifyImage.do" onclick="changeImg()" border="0"/></a>

3.3 程序运行结果展示(见图2)

图2显示了本程序的运行结果,人眼可以比较容易地从图中看出验证字符串为“什石脸着”,但对于机器来说,验证图片中的字符排序毫无规则,并且其中还包含干扰曲线、噪点,所以会大幅增加机器识别的难度,从而极大地提高网站的安全性.

各种各样的验证码在如今的B/S开发或者C/S开发项目中应用非常广泛,甚至基本上所有的B/S项目中都会用到验证码,可见验证码在如今的网络应用中的重要性.本文只是结合自身项目实践对验证码及其生成显示机制做了简单的说明,所生成的验证码经实际应用证明相当可靠,且人眼也较容易识别.

总而言之:该文是关于对不知道怎么写JavaWeb和中加和验证码论文范文课题研究的大学硕士、验证码本科毕业论文验证码论文开题报告范文和文献综述及职称论文的作为参考文献资料.

参考文献:

1、 语言模因学的后现代主义哲学审视 摘 要兴起于20世纪70、80年代的模因学,把文化复制因子作为“模因”,对文化的复制和传播的研究提出了类似达尔文进化论的观点 语言是文化的重要载体,其本身也属于文化的组成部分,.

2、 诵以贯之,思以通之一高三二模后的自主复习和自我矫正 高三是一个没有硝烟的战场,师生们齐心协力,冲刺高考 特别是二模考试以后,我们会针对学生反映出的问题做许多工作,下面我就在复习过程中如何发挥学生的主体作用,进行自主复习与自我矫正来谈一谈 这里说的复习主.

3、 扫码阅读移动资料助力上海团 上海团的代表们只要拿起手机扫一扫二维码,“同志出席上海团审议的重要讲话(2008 年—2017 年)”“十二届全国人大一次会议上海团简报”&.

4、 英语词汇教学的多模态尝试 张秦敏(南京航空航天大学附属高级中学,210007)摘要国内很多专家学者及一线教师都围绕英语词汇教学策略、词汇教学方法、词汇识记原则以及词汇教学过程中经常出现的各种问题,开展了较为深入的研究 为提高词.

5、 图片故事 金砖合作再出发当地时间2018年7月26日,金砖国家领导人第十次会晤在南非约翰内斯堡举行 南非总统拉马福萨主持,中国国家主席、巴西总统特梅尔、俄罗斯总统普京、印度总理莫迪出席 五国领导人围绕&ldqu.

6、 手机二维码在智慧图书馆公共文化服务中的应用 关键词手机;二维码;智慧图书馆;公共文化服务摘要文章以手机二维码和智慧图书馆的概念及二者之间的关系为切入点,分析了智慧图书馆公共文化服务的特点及手机二维码在智慧图书馆中的体现,最后讨论了手机二维码在智.