JAVAWEB_14_验证码 水印特效.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVAWEB_14_验证码 水印特效

第4 章 验证码、水印特效 - 0 - 在上一章我们介绍了Ajax 的原理、以及其实现。由于Ajax编程可以大大的提高用户的体 验程度,所以在目前的web应用程序开发中使用的越来越多,并涌现出了一些比较优秀的Ajax 框架,如dwr、ext等。本章我们将介绍一种用于防止黑客攻击的编程方法,就是验证码技术。 4.1 验证码简介 在黑客的攻击手段中,有一种方法叫做 “暴力破解”。就是根据获取到的账号,对不同的密 码不停进程尝试登陆。如得知一个账号“张三”、密码有三位,就可以使用一个小的暴力破解的 程序,使用密码 “001”到 “999”不停的访问登录,直到登录成功为止。这就是 “暴力破解”。 “暴力破解”看似很愚笨的方法,但是确实实际可行的,所以我们在开发过程中必须防止 这类的非法访问。这就需要验证码技术。 验证码就是在一张图片上随机生成一些字符,使用这些随机生成的字符作为系统的第一次 登录入口。由于在客户端看到的验证码是以图片的形式存在、所以普通的网页机器人很难从中 获取到字符数据,又因为生成的图片数据是随机的,所以使用 “暴力破解”的穷举方法不能破 解这第一次登录。 4.2 验证码实现 4.2.1 验证码原理 验证码就是在普通的登录或者操作之前添加了一个随机密码的登录,从而防止使用网页机 器人来实现 “暴力破解”,其原理如图4-1所示。 图4-1 验证码原理图 如图4-1所示,在客户端访问登录页面时使用一段java代码生成验证码图片,并将验证码 图片的数据保存在session 中,然后将生成的验证码图片显示在客户端访问的页面中,根据客 户端端输入的验证码数据和保存在session 中的数据比较判断验证结果。当客户端输入的验证 - 1 - 码内容和session 中保存的验证码数据一致是表示通过验证,因为使用暴力破解的一般使用的 是网页机器人,而在网页中验证码的数据是显示在一张图片中的,所以很难读取到,起到防止 暴力破解的作用。 4.2.2 API 介绍 在验证码技术中需要将随机生成的验证码数据显示在图片上,从这个需求我们可以看出, 我们需要使用代码创建一张图片文件、或者图片流,还需要使用随机函数生成随机数据。在JDK 的java.awt包中提供了用于创建和绘制图片的类。 1、BufferedImage类 BufferedImage类表示可访问的图片缓冲区,一个该类型的对象表示一张图片的缓冲区, 可以将该缓冲区的图片数据输出到某一个数据流中,如文件流、response响应流。该类常用的 构造方法如下: public BufferedImage (int width,int height,int imageType) 其中: width表示缓冲区所创建图像的宽度,单位是像素。 height表示创建图像的高度,单位是像素。 imageType表示所创建图像的类型,该类型有BufferedImage类中的一组常量指定。 BufferedImage类还定义了许多用于得到图片信息的方法,和设置图片数据的方法。该类常用 的方法如表4-1所示。 表4-1 BufferedImage类常用方法 返回类型 方法名 描述 Graphics2D createGraphics() 创建一个 Graphics2D,可以将它绘制到此 BufferedImage 中。使用得到的Graphics 对 象可以在图片中绘制想要的图形或者文字。 void flush () 刷新所有正用于缓存优化信息的资源。 Graph

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档