基于GDI+的Web端页面验证码绘制

2018-03-21 09:27李军连俊光
电脑知识与技术 2018年3期

李军 连俊光

摘要:GDI+,全称为Graphics Device Interface plus,中文名称是图形设备接口,可满足程序中对验证码绘制及输出的需求。验证码,是一种能保证用户在登录Web时账户安全的方式,能够有效防止计算机暴力破解。

关键词:GDI+;验证码;安全登录

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0072-02

1 概述

为了杜绝某个指定的用户被网络hacker使用自己编写的程序采用随机、多次、强制的方法进行破解,便产生了验证码。验证码本质为一张图片,图片上的内容由形状不规则、颜色不同的字母、数字构成,最后通过GDI+输出到用户界面上。

2 GDI+介绍

GDI+是用来交换系统和程序的信息,输出程序中需要的图形。相对于GDI增加了许多新的功能:

1) 画刷可以渐变,在绘制直线时,画刷渐变,即在绘制一条直线的过程中颜色在渐渐变化。

2) 基数样条函数,由指定的点形成样条,单条曲线按顺序连接形成更大曲线即基数样条,相比与传统直线路径更加准确。

3) 相对于GDI只支持区域的移动,GDI+支持了区域的伸缩。

4) 支持的图像格式更多。

3 GDI+操作方法说明

3.1 FromImage(参数)方法

FromImage是在Graphics类下的方法,用来在画布上生成画笔对象,使用时传递的参数即为要生成画笔的画布对象。假设创建的画布对象为image,要在image画布上生成画笔,便可以使用FromImage方法, Graphics.FromImage(image),此时即在指定画布上生成了画笔,将生成的画笔对象赋给Graphics g,便完成了在画布上创建画笔的工作。

3.2 Clear(参数)方法

Clear方法是用来改变画布的背景颜色的,使用Clear方法可以直接改变整块画布的颜色。传递的参数即为想要填充的画布背景颜色。假设已经绑定画布的画笔对象为g,要清空画布的背景色,使用Clear方法实现,即g.Clear(Color.White)。

3.3 DrawString()方法

DrawString方法用来实现用画笔在画布上画出要显示的字符,常用的DrawString方法有4个参数,DrawString(参数1,参数2,参数3,参数4),参数1指定想要在画布上显示的字符。参数2指定字符的字体,参数3是要显示的字符状态,加粗、倾斜等。

参数4是要显示的字符的位置,即坐标。

3.4 DrawLine () 方法

DrawLine(参数1,参数2,参数3,参数4,参数5)方法用于绘制一条连接两个指定点的直线。其中,参数1用于指定绘制线的样式及颜色、宽度等。参数2用于指定第一个点的X坐标,参数3用于指定第一个点的Y坐标,参数4用于指定第二个点的X坐标,参数5用于指定第二个点的Y坐标。

3.5 DrawRectangle()方法

DrawRectangle(参数1,参数2,参数3,参数4,参数5)方法可以绘制一个长方形,长方形的样式及颜色、宽度等由参数1指定。参数2用于确定要绘制的长方形的左上角顶点的X坐标。参数3用于确定要绘制的长方形的左上角顶点的Y坐标。参数4给定要绘制的长方形的宽。参数5给定要绘制的长方形的高。

4 绘制验证码的基本流程

我们日常在访问各大网站时见到的验证码大多为随机的4位数字,并且在数字上面散布着各种颜色的线条及像素点。分析出验证码的特点,下面我们便可以开始绘制我们自己的验证码:

4.1 生成随机数字

4.2 创建画布

4.3 在画布上创建画笔对象

4.4 清空画布的背景色

4.5 生成随机生成器

4.6 绘制随机干扰线

4.7 绘制随机干扰点

4.8 保存图片数据

5 绘制验证码帮助类的完整代码

5.1 生成随机数字完整代码

5.2 创建验证码图片完整代码

6 效果图

在用户登录时,显示了一个随机生成的4位数的验证码图片,如图11:

7 结束语

验证码对于用户信息安全具有重要意义,本文使用GDI+实现了Web端常见的验证码的绘制,可在实际应用中参考此方法生成验证码,具有实用价值。

参考文献:

[1] 李宏利, 李汉荣, 张卫成, 等. 通用地图标绘系统的设计与实现[J]. 测绘科学, 2005(4).

[2] 金良益, 江南, 张亚军, 等. 矢量化多边形优化方法[J]. 测绘科学技术学报, 2017(3).

[3] 王强, 郑逢斌, 乔保軍, 等. 一种改进的Delaunay三角网生成算法[J]. 计算机应用与软件, 2010(8).