李军 连俊光
摘要: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).