C#实现彩色验证码图片功能代码

【菜科解读】
1、为什么要加验证码?因为加了验证码可以防御别人攻击你的网站,举个例子:别人可以用webbrowser控件做一个模拟浏览器,并且模拟提交表单(模拟填写表单资料和点击提交按钮),那么你的服务器必须接收这些表单传过来的值,并且做判断,是否正确。
这样一来,别人可以无限占用你的服务器资源,而且账号密码都不安全,万一被别人搞个循环1个1个账号轮询的话,很有可能让别人破解了你的资料信息,所以安全性稍微高点的网站登录都有彩色图片验证码。
2、为什么彩色验证码图片可以防御别人的攻击?因为当别人用轮询技术模拟登录的时候,他并不知道你的验证码是什么,也获取不到,因为这是一张图片,电脑并不能识别里面的数字是什么(除非破解验证码里面的干扰,再利用相关的图片识别技术有可能读出验证码,这里先不扯这个)。
读不出验证码就没有机会轮询访问了,当然我们后台判断的时候一定要先判断验证码是否正确,以防止占用服务器资源。
3、随机数 Code①数字随机数1 /// 2 /// 数字随机数3 /// 4 /// 5 private string GetRndNum()6 {7 string code = string.Empty;8 Random random = new Random();9 for (int i = 0; i 2 /// 字符串验证码3 /// 4 /// 5 private string GetRndStr()6 {7 string Vchar = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";8 string[] VcArray = Vchar.Split(',');9 string checkCode = string.Empty;10 Random rand = new Random();11 for (int i = 0; i 2 /// 随机中文码3 /// 4 /// 5 private string GetRndCh()6 {7 System.Text.Encoding gb = System.Text.Encoding.Default;//获取GB2312编码页(表)8 object[] bytes = CreateRegionCode(4);//调用函数产生4个随机中文汉字编码9 string[] str = new string[4];10 System.Text.StringBuilder sb = new System.Text.StringBuilder();11 for (int i = 0; i 22 /// 产生随机中文汉字编码23 /// 24 ///
25 /// 26 private static object[] CreateRegionCode(int strlength)27 {28 //定义一个字符串数组储存汉字编码的组成元素29 string[] rBase = new String[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; 30 Random rnd = new Random();31 object[] bytes = new object[strlength];32 33 for (int i = 0; i 2 /// 画图片的背景图,干扰3 /// 4 ///
5 /// 6 private Bitmap CreateImages(string checkCode,string type)7 {8 int step=0;9 if(type=="ch")10 {11 step=5;//中文字符比较大,所以字距要比较大12 }13 int iwidth = (int)(checkCode.Length * (13 + stepw));14 System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 22);15 Graphics g = Graphics.FromImage(image);16 17 g.Clear(Color.White);//清除背景色18 19 Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };//定义随机颜色20 21 string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };22 Random rand = new Random();23 24 for (int i = 0; i 实现,彩色,验证,码,图片,功能,代码,、,为什么,
世界上有鬼吗?十大灵魂实验验证解析世上有鬼吗
但是,在我们的内心世界,即人的精神领域中,它是存在的,它存在于一些心理处于良好的状态程度不高的人 群中,因为“鬼”实际上是一种压抑的产物,一种长期积累的消极情绪的化身,而不同的鬼有不同的象征意义。
一系列有趣甚至令人好奇的实验都在极力证实人类所面临的一个最主要的问题:吗?人死后是否真有来生?为证实这一点,科学家做了许多相关的实验,以下是10大验证死后来生的疯狂实验。
十八世纪的意大利做干了哪些事情 为什么能够实现统一呢
那么,这究竟是怎么回事呢?下面我们就一起前往查看一番。
首先,让我们先将目光移到公元1860年5月6日的早晨,就会发现,在意大利热那亚城外的港口,有两艘旧船正稳稳地停着,似乎在等待着什么重要任务。
而此时,1000多名身穿红衬衫,头戴阔边帽的意大利人则迅速登上了这两艘船。
接着,只见有一个中年人在大声呼喊:“为解放西西里岛的同胞,为意大利的统一,前进!”然后,轮船就像飞一样,消失在了漆黑的海洋里。
那么,这又是咋回事呢?原来那个高喊口号的中年人叫加里波第。
他生于1807年,是一个水手出身。
青年的时候就由于在反对外国占领者的过程中失败而逃到了拉丁美洲,然后,在1848年回国以后,就成为了意大利统一运动的领导者。
要知道,统一对于当时的意大利而言非常重要。
因为当时的意大利至少也分裂为了数个小国。
而北部的几个小国则被奥地利占领,南部的西西里王国则被西班牙占领,中部地区则归属于教皇管理,可以说是。
因此,当西西里王国的许多爱国老百姓听闻有意大利统一运动的武装力量前来的时候,都感到格外高兴。
他们马上就兴高采烈地到码头迎接,而见面之后,便开始商量对策。
但就在此时,炮声响了。
原来殖民者西班牙已经知道了意大利统一运动武装已经到达了西西里岛的消息,他们马上派遣部队前来攻击。
但是,令人可笑的是,正当加里波第他们想要还击的时候,敌人的炮声却突然停了。
原来港口内还有两艘英国商船,他们刚提出抗议,西班牙的士兵们便不敢再进行攻击了。
于是,加里波第的红衫军就很快就以港口为基地,借机又扩大了规模,接着,在实力大增之后,加里波第便下令向西西里岛的首府巴勒莫进军。
但是,当他们刚刚出发在进军的路上,就遇到了一座梯形的高山,山上则有两倍于红衫军的敌人占领。
按道理说,一看这情况,红衫军就应该退缩了。
然而,加里波第的红衫军却并没有退缩。
在经过了一阵猛冲猛打之后,红衫军就占领了这一座高山。
然后,兵临首府巴勒莫。
于是,5月27日的凌晨,天还没有亮,总攻就开始了!在持续了两天两夜的战斗后,西班牙占领军和西西里王国的反动军队是死的死,逃的逃,红衫军取得了胜利。
但是,为了不让敌人有喘息的机会,当年的八月,加里波第就带领着红衫军向着西西里王国的首都那不勒斯进军。
随后,在当地人民的支持下,那不勒斯也获得了解放。
然后,1860年11月初的一天,意大利新国王厄马努埃尔便和意大利统一运动的最高首领加里波第手拉手走在了那不勒斯的大街上,接受全市人民对他们得热烈欢迎。
至此,意大利开始走向了统一之路。
总之,十八世纪的意大利为何能够实现全境统一?来源于意大利人民不屈不挠的战斗意志。
随机文章塞普蒂米乌斯·西弗勒斯拱门简介日本富士山简介详解c5运输机和c17的区别,造价3亿美元的C17性能更优尼古拉特斯拉有多恐怖,击败爱迪生成为现代电气学之父地表喀斯特地貌类型,喀斯特地貌的形成过程(大自然风化而成)