基于tensorflow的验证码识别方法分析毕业论文
2020-04-12 16:52:58
摘 要
在网络安全日益重要的今天,可以辨别用户身份的验证码,作为目前解决WEB系统安全登录的技术之一,可以在一定程度上防止某些人利用程序重复登陆网站并窃取服务器资料,可以担当起阻止恶意用户暴力重复破解网站登录的一道防线。实际上,我们可以发现现在大多数网站都采用验证码来区分用户。从原理上来说,现有的机器程序无法完全破解CAPTCHA的问题,因此可以说能够识别出验证码的就是人类用户。
本文是基于TensorFlow的验证码识别技术的研究,主要是通过深度学习和神经网络破解验证码,有利于发现现有验证码的漏洞,并促进改善验证码以提高网络安全,在防止恶意机器程序攻击方面有着重要意义,具有一定的理论意义和应用价值。
关键词:验证码;识别;TensorFlow
Abstract
As the network security is becoming more and more important today, the authentication code of the user's identity can be identified. As one of the technologies to solve the WEB system security login, it can prevent some people from using the program to lo g on the website repeatedly and steal the server data to a certain extent. A line of defense.In fact, we can find that most websites now use authentication code to distinguish users. In principle, the existing machine program can not completely solve the problem of CAPTCHA, so it can be said that t he identification code can be identified as human users.
This paper is based on the research of authentication code recognition technology based on TensorFlow. It is mainly through deep learning and neural network to crack the verification code. It is beneficial to discover the loopholes of the existing verification code, and promote the improvement of the authentication code to improve the network security. It is of great significance in preventing malicious machine program attack and has certain theoretical significance and applied value.
Key Words:CAPTCHA;Recognition;TensorFlow
目 录
第1章 绪论 1
1.1 研究背景及意义 1
1.2 国内外研究现状 1
1.3 主要研究内容 2
1.4 本文结构 2
第2章 TensorFlow与深度学习 4
2.1 TensorFlow 4
2.1.1 数据流图 4
2.1.2 TensorFlow的特征 5
2.2 深度学习和卷积神经网络 6
2.2.1 深度学习 6
2.2.2 卷积神经网络 9
第3章 图像验证码识别的设计与实现 12
3.1 平台搭建 12
3.1.1 Anaconda平台 12
3.2 图形验证码生成器 14
3.2 构建神经网络模型 16
3.3 训练神经网络 17
3.4 预测输入图像验证码 18
第4章 基于TensorFlow图形验证码识别的测试 19
4.1 验证码生成器测试 19
4.2 神经网络训练模块测试 19
4.3 识别验证码测试 22
第5章 总结与展望 24
参考文献 26
致谢 27
第1章 绪论
1.1 研究背景及意义
近几年来,互联网飞快地发展,已经成为了最重要生产要素的信息,同时构成了信息时代最有价值的社会基础。与此同时,信息不再像传统方式那样必须保存在有实体的介质中,而是广泛存在于海量的网站服务器内,虽然这样有利于人们存储,查找和获取所需的信息资料,缩短了要花费的时间与物质财富。但是与此同时,这也导致了恶意用户盗取隐私信息的可能性,甚至出现破坏分子攻击某些安全客户的恶劣情况。因此,人们逐渐开始重视网络防护与信息安全,其中,WEB的信息安全性特别是验证码的地位尤其重要。
验证码,全称全自动区分计算机和人类的公开图灵测试,可以辨别用户身份的验证码,作为目前解决WEB系统安全登录的技术之一,可以在一定程度上防止某些人利用程序重复登陆网站并窃取服务器资料,可以担当起阻止恶意用户暴力重复破解网站登录的一道重要防线。实际上,我们可以发现现在大多数网站都采用验证码来区分用户。从原理上来说,现有的机器程序无法完全破解CAPTCHA的问题,因此对于服务器来说,能够正确识别出验证码的就是人类用户。
然而直到今天,也没有人可以宣称自己设计的验证码设计方法是绝对安全的。验证码虽然能在一定程度上防止恶意攻击,但是对于一些安全性要求极高的用户来说,如银行和证券交易账户,验证码的设计还不够完善,仍然存在被破解和攻破的危险。特别是在人工智能快速发展的现在社会,人工智能的其中一个主要目标就是使机器像人一样思考和工作,模仿甚至超越人类,能够让一些具有人类特性才能完成的复杂工作由机器代替。那么这个目标就与验证码存在的意义相矛盾。而矛盾又是事物发展的动力。验证码识别者必须和设计者博弈:如何尽可能的识别计算机生成的验证码,从而找到设计的漏洞。在这个博弈的过程中,促进双方技术进步。然后,封锁不法分子获取这些高识别率技术的途径,并把这些生成技术提供给真正的网络服务者,从而增强网络安全性。
从以上描述来看,验证码识别技术的研究,不仅能提高人工智能的发展,也能促进验证码的安全性。因此说明验证码识别具有很强的现实意义,是必不可少的。
1.2 国内外研究现状
验证码识别技术[1],属于字符识别的一个分支,在模式识别领域中属于一个非常受欢迎的研究方向,在国外的起步比较早,技术相对完善。比如Mor和Malik[2]将开发的一种识别算法应用在了EZ-Gimpy和Gimpy这两种相似类型的验证码,该算法主要是关于复杂对象,识别的准确率分别达到了92%和33%。Chellapilla和Patrice将逐渐火热的机器学习技术应用在了验证码识别,对几个网站上获取的验证码进行识别,识别率从4. 89%到66. 2%不等[3]。Yan等人对网站Captchaservice.org的验证码展开了研究,它是一个免费网站,为用户提供验证码的生成服务,该网站宣称其生成的验证码可以有效的防止用户使用当时市场上的OCR软件进行自动识别,但是Yan及其团队发现Captchaservice.org所生成的验证码有一个缺陷,Yan等人仅仅利用简单的匹配像素值方法就达到了接近100%的识别率[4]。Moy和他的同事采用失真估计技术识别了EZ-Gimpy验证码和四个字符长度的Gimpy-r验证码,其中EZ-Gimpy验证码的识别率为99%,Gimpy-r验证码的识别率为78%[5]。随后在2008年,还是Yan,又提出了一种字符分割的技术,并将该技术用在了一些知名网站的早期验证码上,比如微软,雅虎和谷歌网站使用,这些验证码当时主要是基于数字的,该方法达到了不错的效果,尤其对于微软早期验证码,达到了92%的识别率[6]。
2011年,Elie Bursztein,Matthieu Martin和John. Mitchell总结评价分析了当前知名网站的15种不同类型的验证码,发现计算机程序能够很容易的自动识别总计15类中的13类[7]。2017年10月26日,美国凡思智能公司研究人员在美国《科学》杂志上发表论文,提出了一个用于物体识别的计算机视觉模型——递归皮层网络,可以有效识别真实场景中的文字,并具有较好的通用性,即一个模型有效破解不同变体的验证码,比如变形的文字和复杂背景中的验证码[8]。
1.3 主要研究内容
网络中图形验证码的种类多种多样,因此,并没有一种通用的方法能够解决所有验证码识别问题,因此要具体问题具体分析。本文的研究对象为基于英文字符及数字的图形验证码,在阅读了国内外相关研究成果的基础上,努力学习、对比和选型,开发出了基于TensorFlow验证码的识别系统,并对识别系统进行了批量模拟实验,发现该系统具有良好的识别率。
1.4 本文结构
本文结构如下:
第1章 绪论:叙述了本文所实现系统的研究背景及意义、国内外现状、主要设计内容以及本论文结构;
第2章 相关原理:对本文中应用到的TensorFlow技术和机器学习及深度卷积网络等相关知识进行了系统概述,对深度学习的发展、原理、学习方法、应用进行了详细的描述,对神经网络结构、深度学习与神经网络之间的关系以及深度学习的运算流程进行了介绍。
第3章 基于TensorFlow的图像验证码识别系统的设计与实现:在第2章中的相关原理的基础上分别对系统中每个具体模块所用到的技术点进行讲解以及设计思路的描述和编码实现;
第4章 基于TensorFlow的图像验证码识别系统的测试:对系统的功能进行测试,验证测试结果是否能满足该系统的设计方案;
第5章 总结与展望:对本系统的设计与实现进行总结,并对本设计的不足提出未来的展望。
第2章 TensorFlow与深度学习
2.1 TensorFlow
Tensorflow是Google科学家们研发的第二代机器学习系统,是一个使用数据流图进行数值计算的软件库。单词“Tensorflow”直译为张量(Tensor)在流动(Flow),即张量流动于图与图之间进行计算。谷歌开发的第一代机器学习工具是DistBelief是以神经网络为目标进行研发的,但实现较为困难。因此,在2015年11月,谷歌推出并开源了运行速度更快,使用更方便,可在多种操作平台下使用的Tensorflow。
2.1.1 数据流图
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算[9]。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。