验证码技术(精选10篇)
验证码技术 篇1
在信息化技术飞速发展的今天,计算机及网络技术得到迅速发展,现代企业和个人的数据信息量正在呈爆炸式的增长,数据作为在计算机系统内存在的形式越来越成为企业和个人最重要的财富。与此同时,人们也更加关注数据的可用性和可靠性。传统的增强可用性和可靠性的方式主要是完全复制技术。采用完全复制技术时,需要将数据做多个拷贝,然后将多个拷贝分发到多个不同的位置,这样能够提供很好的可用性和可靠性。但是,完全复制技术也有一个缺点:存储多个副本的空间开销太大。假定数据的大小用L表示,如果将数据采用k倍复制的话,那么总的存储开销将是k*L。为了降低存储的空间开销并增强系统的可用性,人们开始将纠删码技术应用于存储领域。以(m,n)纠删码技术为例,将需要存储的数据分成m个分片,然后通过编码生成n个分片,将这n个分片分发到多个不同的位置。在需要对数据进行恢复时,只需要任意m个分片,就可以恢复出原来的数据。使用(m,n)纠删码技术的存储开销是n*(L/m)。但是,纯粹的纠删码技术有一个假定:参与存储的客户端和服务器都是可信的。在客户端和服务器不可信的环境(如可能出现拜占庭故障)中,恶意的客户端可能向服务器写入“有毒”的(即数据分片不是对应于同一个原始数据)数据或不完整的数据;恶意的服务器可能篡改或删除存储其上的数据分片。为此,需要有一种技术向正确的客户端和服务器证明其所收到的数据分片是一致的,我们称这种技术为纠删码分片验证技术。
1 背景知识
1.1 现有的纠删码验证技术使用的数据结构
Krawczyk[1]提出了分布式指纹的概念,能够用于对数据分片进行验证。Krawczyk的方法使用了一种称之为交叉校验和(crosschecksum)的结构。交叉校验和的计算方式如下:使用纠删码将需要存储的数据编码成多个分片,然后针对每个分片,计算其hash值,再将这些计算出来的hash值链接起来形成交叉校验和。
Hendricks[2]等提出了同态指纹(homomorphic fingerprint)的概念,能够用于对每个数据分片独立地进行验证。它们的方法采用了一种称为指纹交叉检验和(fingerprinted cross-checksum)的结构。指纹交叉校验和由两个数组组成,一个数组存储的即为H Krawczyk提出的交叉校验和,另一个数组存储的是同态指纹。1.2节将对同态指纹及其在纠删码中的应用进行介绍。
1.2 同态指纹及其在线性纠删码中的应用
同态指纹是一种具有特殊性质的指纹。为了给出同态指纹的定义,首先给出指纹的定义。为了表示的方便,令F表示一个具有“+”和“﹒”有限域,Fqk表示一个阶为qk的有限域,其中q是一个素数。令t←TR表示从T中随机均匀的选择一个元素赋予t。
定义1一个e指纹函数fp:K×Fδ→Fγ在当d,d'∈Fδ且d≠d'时,满足下面的不等式:
Max[Pr[fp(r,d)=fp(r,d'):r←KR]]≤e
换句话说,就是随机选择r使得fp(r,d)=fp(r,d')的概率至多是e。
定义2如果对于任意的r∈K和任意的d,d'∈Fδ,b∈F指纹函数fp:K×Fδ→Fγ满足fp(r,d)+fp(r,d')=fp(r,d+d')和b﹒fp(r,d)=fp(r,b﹒d)
那么就说指纹函数fp是同态指纹函数。
Hendricks[2]等给出了同态指纹函数在线性纠删码中应用的定理,并给出了同态指纹函数的两个实例。为了方便表示,令(encode,decode)是一个线性纠删码机制,需要编码的数据块为B,令编码生成的分片用d1,d2,…,dn表示。如果只考虑第i个编码分片的话,用简写di←encodei(B)表示。
定理1[2]令fp是一个具有同态属性的e指纹函数,(encode,decode)是一个线性纠删码机制,如果d1,d2,…,dn←encode(B),那么对任意的r∈K和1≤i≤n,都有
fp(r,di)=encodei(decode(fp(r,d1),…,fp(r,dm)))
定理1揭示了一个有用的事实:一个数据块的一个编码的指纹和那个块的指纹的编码是相等的。这样,我们可以构造一种称之为指纹交叉校验和的结构。该结构允许每个分片被独立地验证。
定义3一个(m,n)纠删码的指纹交叉校验和fpcc包含:一个具有n个值的数组fpcc.cc[],用于存储每个编码后的分片的hash值;一个具有m个值的数组fpcc.fp[],用于存储同态指纹。
利用指纹交叉校验和,我们可以用以下步骤验证分片是否和指纹交叉校验和一致:1)验证分片的hash值是否与fpcc中对应的hash值相等;2)验证分片的指纹是否和fpcc中指纹的编码相等。图1是(2,4)线性纠删码中分片d4的验证过程示意图。
2 现有的纠删码验证技术
现在普遍应用的纠删码验证技术都是基于交叉校验和的。根据验证发生的时机不同,现有的纠删码分片验证技术可分为以下三种:1)写时验证;2)读时验证;3)延迟验证。下面对现有的纠删码验证技术进行分析。
2.1 写时验证
采用写时验证时,客户端首先将需要存储的整个数据块发送给各服务器,服务器接收到数据之后,运行纠删码技术生成分片,并生成交叉校验和,然后服务器之间通过all-to-all的通信方式,对这些分片进行一致性协商。一致性协商成功完成之后,各服务器各自存储自己需要存储的分片和交叉校验和。这种方法的优点是需要的服务器数目是最优的。为了能够容忍f个服务器出现拜占庭故障,只需要3f+1个服务器即可。此外,客户端的读操作非常简单,它只需要接收到m个来自不同服务器的满足下列两个条件的消息即可验证分片的一致性:1)消息具有相同的交叉校验和;2)消息中的分片和交叉校验和中对应部分相一致。该方法的主要缺点是:发送需要存储的整个数据给服务器的网络带宽开销太大。每个服务器在一致性协商的过程中,还需要发送对应的分片给其它服务器。此外,一致性协商过程需要服务器之间的all-to-all通信。假定服务器的数目是N,那么需要的通信开销是O(N2),这样服务器的可扩展性不好。Cachine等在文献[3]中就采用了这种方法。
2.2 读时验证
采用读时验证时,客户端首先运行纠删码技术将需要存储的整个数据编码成多个分片,并生成交叉校验和,然后向每个服务器发送对应的分片及交叉校验和。当客户端执行读操作时,需要首先向服务器获取m个具有相同交叉校验和的分片,并使用纠删码技术恢复出n个分片,分别计算这些分片的hash值,并将其与交叉校验和中对应的部分比较。若全部相等,则验证通过,否则,验证失败。这种方法的主要优点是:客户端的写操作非常简单,不需要服务器之间的all-to-all通信,将验证的工作移到客户端来做,增强了服务器的可扩展性。缺点是需要的服务器数目比写时验证要多。为了容忍f个服务器出现拜占庭故障,需要至少4f+1个服务器。此外,客户端的读操作需要较大的计算开销。Goodson等在文献[4]中采用了这种方法。
2.3 延迟验证
延迟验证的基本思想是将分片的验证工作从客户端操作的关键路径中移出。这种移出使得系统能够将分片验证的开销分摊到多个操作中去,允许服务器在空闲时执行验证操作,并且允许存储节点的一部分来执行验证过程。此外,在服务器没有空闲的环境中,如果数据的生命周期很短或者数据经常被重写,那么验证开销可以避免或分摊到存储数据的多个版本中。服务器对分片的验证方法与读时验证相同。服务器如果对分片进行了验证,会置一个标记以指示分片已经被验证。如果在客户端读取分片之前,如果分片已经被服务器验证,那么就避免了客户端的验证开销。如果没有被验证,那么这是最坏的情况,这种情况客户端要执行读时验证。这种方法的主要优点是:在一般情况下,客户端的读写操作都不需要验证。其主要缺点是验证操作的计算开销较大。Abd-El-Malek等在文献[5]采用了这种方法。
3 我们的方法
基于前述的几种方法,我们提出一种采用指纹交叉校验和的延迟验证方法。采用指纹交叉校验和可以允许每个分片独立地被验证。指纹交叉校验和能够降低写时验证的带宽开销,也能降低读时验证的计算开销。其核心思想是编码机制能够对分片施加一些代数约束,而存在同态指纹函数能够保持这种约束。这样,我们可以将采用交叉校验和的延迟验证方法中的交叉校验和结构用指纹交叉校验和结构替换,对协议稍加修改就可以实现我们的方法。这样,在延迟验证时,服务器之间可以通过利用指纹交叉校验和结构来对单个分片独立地进行验证,避免了写时验证和读时验证的缺点,而且保持了延迟验证的诸多优点。为了简单起见,令采用交叉校验和的写时验证、读时验证、延迟验证方法分别用WV-C、RV-C和LV-C表示,我们的方法用LV-FC表示。Smin表示为了容忍至多f个副本出现拜占庭故障,各种验证方法需要的最少的服务器的数目。表1是我们的方法与现有方法的对比。
4 结束语
由于纠删码技术能够增强分布式系统的可用性,因此在分布式存储系统中得到了广泛的应用。本文重点分析了现有的纠删码验证技术,指出了其存在的不足,并基于同态指纹技术和延迟验证技术提出了一种新的方法。分析表明,新方法在带宽开销或计算开销方面比旧方法具有更高的效率。
摘要:纠删码分片验证技术在拜占庭环境中非常重要。分析了现有的纠删码分片验证技术。基于同态指纹技术提出了一种新的验证方法。分析结果表明,新的方法具有更好的效率。
关键词:纠删码,同态指纹,指纹交叉校验和,延迟验证,拜占庭故障
参考文献
[1]Krawczyk H.Distributed fingerprints and secure information dispersal[C]//Proceedings of the 12th ACM Symposium on Principles ofDistributed Computing.ACM Press,1993:207-218.
[2]Hendricks J,Ganger G R,Reiter M K.Verifying Distributed Erasure-Coded Data[C]//Proceedings of the 26th ACM Symposium on Prin-ciples of Distributed Computing.ACM Press,2007:163-168.
[3]Cachin C,Tessaro S.Optimal resilience for erasure-coded Byzantine distributed storage[C]//Proceedings of the International Conferenceon Dependable Systems and Networks.IEEE Press,2005:191-202.
[4]Goodson G R,Wylie J J,Ganger G R,et al.Efficient Byzantine-tolerant erasure-coded storage[C]//Proceedings of the International Con-ference on Dependable Systems and Networks.IEEE Press,2004:135-144.
[5]Abd-El-Malek M,Ganger G R,Goodson G R,et al.Lazy verification in Fault-Tolerant distributed storage systems[C]//Proceedings of the24th IEEE Symposium on Reliable Distributed Systems.IEEE Press,2005:179-190.
“活”起来的验证码 篇2
宋超慌忙捡起手机,讨好女友说:“别生气,你嫌烦,我来帮你输。”说完埋头捣鼓了半天才弄好,他心里也对验证码生出些怨言,“安全性是高了,但用起来太窝心。”
女友揶揄道:“你不是计算机专业的吗?你有本事,自己设计个好输入的验证码啊,说不定能大赚呢。”
女友的话让宋超脑海中灵光一现:现在各大网站论坛都需要验证码服务,自己何不利用验证码致富?打定主意,宋超很快找来学弟郝忠翁和张扬入伙,开发简化验证码。他们都很清楚,如果成功了,这可是国内第一家!
想到女友是资深智能手机用户,宋超咨询她:“你比较乐意接受什么样的验证码输入方式?”“一是要方便,要一键式操作,再就是好玩,最好能像做游戏一样轻松有趣。”女友的话又给了宋超很多启发。
说做就做,宋超等人组成“微触”团队,开始了验证码研发,但很快,团队就遇上了资金问题。
9月底的一天,学校辅导员和导师主动联系宋超,表示学校同意拨款一万多元,帮他们解决申请专利等燃眉之急。2011年11月,宋超他们推出了具有自主专利的互联网验证码——点触验证码:它将传统的验证码输入形式变为以点击、拖动等为主的操作形式,安全简易与有趣兼顾。宋超第一时间向女友汇报了喜讯。
“真有这么神奇?”女友不太相信。“我发个体验包给你。”打开点触验证码的在线体验页面,女友惊奇地发现,原本扭曲难认的字符组合不见了,取而代之的是一幅荷花图片,只要依次点击图中“荷”、“夏”两个字,并拖到指定位置,就能通过验证,整个过程不到两秒钟。
2012年4月,抱着以竞赛推动产品开发进度的想法,宋超的“微触”团队报名参加了浙报传媒主办的新媒体创业大赛,并获得了第二名。让宋超等人万万没想到的是,比赛结束当天,他们就接到了国内著名天使投资公司传媒梦工场负责人的电话:“你们要多少钱?”
2012年6月11日,“微触”团队和传媒梦工场两位投资总监一起坐在了某酒店包厢内。投资方抛出问题:“作为学生团队,你们有哪些优势?”
“点触验证码产品中图文点击形式可以在一堆汉字中点击出一条成语,或者参与一个小的益智游戏,在用户注意力最集中的七秒钟内,就可完成验证码的输入,完全符合触屏时代的用户需求,这会受到手机互联网用户的欢迎。”宋超边在PPT上点击演示,边解说产品优势。
短短半个小时,宋超他们就和对方完成了签约。
三人租了一个二十多平方米的办公室,大家睡在办公室的沙发上,一连几个月都没睡过床。每天起身就工作,凌晨3点才睡觉。“公司刚刚起步,边学习边打理公司,哪样都干不好。你们休学吧,等公司上了轨道,再复学。”从北京赶来看宋超的女友,看到宋超累得脱了形,心疼不已。
休学,学校能答应么?但让他们感到意外的是,学校不仅批准他们休学一年,还允许他们在复学后不必上课,只要通过科目考试和论文答辩就可以毕业。
有了学校的支持,三人竭尽全力。2012年10月,点触正式版上线。四川雅安地震期间,点触验证码上线抗震主题验证,上面包含跳转到实时新闻的按钮以及快速捐款的按钮,跳转率达到了35%,其中25%的用户进入到捐款通道。2013年9月,点触云安全平台安装量超一万,每日验证请求超百万次,每日拦截互联网违法信息超过四十万条。
很快,为期一年的休学即将期满,学校批准宋超他们将公司作为实验室,在公司完成学业。
2013年10月,资金再次成了宋超他们不得不面对的难题。由于点触采用的是云服务,服务器和带宽成本一直居高不下,如何能让公司利润如滚雪球般越滚越大呢?
“你们干嘛不把广告做在验证码上?”看到随处可见的二维码都加上了广告,女友给宋超献计献策,“我来给你算笔账,每年中国网站因注册、登录、发帖、下载等应用进行的验证码输入次数约1300亿次,如果广告方给你们的费用是四千元/千次,就能带来巨额收入!况且,你们是唯一一家点触形式的验证码,还怕吸引不来客户?”
女友的话让宋超的心久久不能平静。不但要看,还要写,这就是点触式验证码广告的优势。对广告主来说,以前的广告多是受众被动地看,而验证码广告是要用来写的,看一遍写一遍,传播效率极高。循着这一路径,2013年10月,点触正式开始运营广告服务。截至2014年2月,宋超他们已和一万多家互联网客户达成合作,成为国内最大的第三方安全验证码服务提供商。
在大多数人抱怨传统验证码不够人性化与完善时,宋超却敏锐地捕捉到了商机,小细节大成败,缺的只是有心人。
基于OCR技术的图像验证码识别 篇3
CAPTCHA, which stands for Completely Automated Public Turing test to tell Computers and Humans Apart, is a program that can generate and grade tests that most humans can pass and current computer program cannot.Now it has emerged as a standard network security technology[1].
Verification code an important text-based CAPTCHA.Unti now, the research of recognizing verification code is still going on.If a verification code is designed very complex, most methods will fail to recognize or get low recognition accuracy[2].
OCR, which is known as Optical Character Recognition, is widely studied and used to recognize verification code[3].With the developing of OCR, several typical text-based CAPTCHAs do not have a reliable security and can be cracked easily[4].
This article will study the application of ORC on recognizing verification code, especially the complex verification code.
1 Verification code
In this article, we assume that the verification code that mentioned have the following characteristics:a single-color picture, using warped characters and straight or curved lines as image noise, to confuse the attacking program.
2 Materials and Methods
2.1 Proposed Work
Another important threat towards CAPTCHA is segmentation Segmentation makes the CAPTCHA into a much simpler text and can easily convert into machine encoded text.This is done in three phases like noise-removal, segmentation and classification.
2.2 Noise Removal
In order to identify the image, it needs to move the noise out of it The image is fed into Wiener filter for filtering of noise.Mathematically Wiener filter is given as follows,
Whereμis the local mean around each pixel, σ2is the local variance around each pixel, ν2is the noise variance.
When the image is passed through the wiener filter, the noise is removed and shown as following:
2.3 Segmentation
Segmentation is a process in which the digital image is partitioned into smaller individual pixels which helps in simplification of image into units which are easily analyzable.From the change noted in the pixel value the alphanumeric letters are traced and is kept ready to compare with the six set of alpha-numeric templates created earlier.
2.4 Classification
The traced letters segmented from the image are then compared with the templates.During comparison if there exits any occurrence of characters matching with the template characters then the most matching letter is taken as the output and is printed.
2.5 Algorithm
1.Read the CAPTCHA image.
2.Apply filters to remove noise.
3.Convert the RGB image into gray image.
4.Convert the gray image to binary image.
5.Trace the characters using pixel value of images.
6.Compare the traced characters with the template available.
3 System Design
In this article, the system design flow includes the steps shown as following figure 3:
Through the above figure, we can see the system operates as follows:getting the picture firstly, then graying, binarizating, noiseremoving, spot filling, straight-line filling, segmenting, unfirming size and matching the picture, and finally getting the result.
Through the figure 5, we see that the image (2478) downloaded from the Internet has been identified accurately after a series of operation.
4 Experimental Results
Firstly, a lot of verification code images have been downloaded from three big websites (Lietou, Guba and Pclady) which shows as following:
Secondly, we put the test samples into the system and get the result.The detailed results show as the following table.
The above table shows that the success rate are 81.67%, 79.23%and 83.14%.And the numbers of images that cannot be identified of the three websites are 7, 6 and 5.Sum up, the result shows that average recognition accuracy of the system is above 80%.
5 Summary
In this article, we design a verification code identification system that based on OCR.The system can identify verification code by a series of operation.Later, we will try meta-heuristic algorithm to select the system parameters automatically and accurately, such as GA andSA.
摘要:验证码是一种标准的网络安全技术, 它主要用来防止网民或者黑客等对网站的恶意注册和访问, 以及发送垃圾文件、暴力破解高价值密码、滥发广告等恶意事件。通过对图片的扫描, 可以提取图片中的数字、字符信息等。本文提出了一种基于OCR技术的图形验证码识别技术。通过对验证码图片进行灰度化、二值化、去噪点、围点填充、直线填充、图像分割、统一大小、图像匹配和存入字库等一系列的操作, 进行对验证码的识别实验。本文通过实验对验证码的特点有了充分的了解, 这样方便设计出更加安全的验证码, 防止被不法分子破解。
关键词:验证码,OCR技术,识别技术,网络安全
参考文献
[1]Yufei Wu.Low quality text images OCR technology research.[D].Graduate School of Chinese Academy of Sciences.2005
[2]Yashu Liu, Hanbin Yan.BMP image storage technology and implementation of cutting.[J].Computer Programming Skills&Maintenance.2009, 17:62-66
[3]Hu Wang, Lin Feng, Yuzhe Sun.Digital verifcation code recognition algorithm and design.[J].Computer Engineering and Applications.2007 (32) :86-88
验证码到底有什么用? 篇4
要回答这个问题,须先弄明白何为验证码。验证码实际上是一种Web自动程序,它有一个充满科学气息的名字——“全自动区分电脑和人类的图灵测试”,就是由机器来向操作者提问,从而鉴别操作者是人还是机器的一种测试。目前,这种测试主要有四类:图形验证码、手机短信验证码、手机语音验证码和视频验证码。
中国铁路客户服务中心的验证码是图形验证码,又叫主流验证码。刚开始,图形验证码只是静态的图片,后来变成了动态的验证码图片,它的防垃圾注入几乎可以达到100%,是一个非常有效的验证码创新模式。
手机短信验证码是通过发送验证码到手机,以验证用户的真实性。大型网站,尤其是购物网站,都能提供这项功能,可以比较准确和安全地保证购物的安全性。
手机语音验证码可以实现自动语音播报,同时短信也能发送到用户手机上,以确保万无一失。如果有拨通失败的,系统还能自动重播,确保不漏掉任何一个,这就从根本上解决了网站用户收不到验证码的问题。
视频验证码是验证码中的新秀,这种由随机数字、字母和中文组合成的验证码会动态嵌入到MP4等视频中,增加了破解难度。视频中的验证码字母、数字组合、字体的形状、大小,速度的快慢,显示效果和轨迹的动态变换,增加了恶意抓屏被破解的难度,其安全度远高于其他验证码,而且这种验证码不会使用户感到枯燥,同时又降低了用户识别的难度,让用户更容易辨认。
验证码的主要作用是拦截不合理的入侵。比方说,若要进入一个页面,就须要通过验证, 这时操作者就要依次输入数字、字母,有时还要加上无法被计算机辨识、但用户肉眼可以识别的文字图像(如12306网站的图形验证),而操作者只有通过了验证,才能顺利打开网页,有效地防止了恶意破解密码、论坛灌水和刷票等不良行为。
随着计算机技术的进步,对于验证码的设计也越来越复杂,程序员正在与破解者进行着一场仿佛没有终点的“拉锯战”,而在这场“拉锯战”中,又催生出新的发现:2015年年底,美国卡内基·梅隆大学的路易斯·冯·安等人设计出把无法识别的古籍文字制成验证码,派发给网站用户验证,根据不同用户反馈回來的单词答案,就可以轻松得到典籍模糊字符的正确结果,这对于古籍保护而言无疑是一个福音。
不过,越来越复杂的验证码还是令很多网友烦恼。为此,谷歌公司正在实施一项“消灭验证码”的工程,即验证码将被一个简单的复选框代替,用户只需勾选“我不是机器人”,电脑通过收集用户单击前的鼠标轨迹,然后对比用户当前的行为是否与在互联网上的历史行为一致,就可以轻松判定操作者究竟是人还是机器。对于大多数用户来说,这无疑会简化他们的体验,但它也会在“不经意间”收集用户的IP地址等变量,从而泄漏隐私。
但是不可否认,验证码作为一种各网站反黑客恶意操作中必不可少的保障系统,还是会被继续使用下去,直到另一种全新的、功能更好的反黑客软件出现。
互联网图片验证码的实现与验证 篇5
所谓图片验证码,就是通过程序产生一串随即产生的字符和数字的序列,并生成一副图片,并对该图片进行干扰像素的设定,由用户识别图片中的字符序列,在指定位置输入并提交给网站进行验证,验证成功后方能执行下一步操作。
1 常见的验证码类型
1)文本验证码:在网页中以文本的形式写在用户浏览到的网页中,也是最原始的验证码,安全性较差,目前很少网站采用这种形式的验证码。
2)图片验证码:在网页中以图片的形式将验证码呈现给用户,该形式可以在一定程度上有效防止非法用户对网站的攻击,但是通过一些图像识别技术,还是有可能破解图片验证码的信息,因此需要对图片验证码进行模糊化,即产生干扰,降低被识别的概率。
3)邮件验证码:用户在网页中输入自己的邮箱地址,系统将以邮件的形式将验证码发送到用户指定的邮箱中,从时间成本和效率上来说,这种方式较为麻烦。
4)手机验证码:网站要求用户提供自己的手机号码,系统以短信的形式将验证码发送到用户手机上。这种方式较易受到用户的抵触,除银行、通讯等较为隐私的服务外,一般网站不采用这种形式。
综上所述,使用图片验证码是以上验证码类型中较为合适的方式。
2 产生图片验证码的步骤及代码
本文采用ASP.NET技术,编程语言采用C#,实现图片验证码,主要步骤如下:
1)首先创建一个“网站”项目,如笔者创建的为“web Site2”。
2)在该网站自动创建的默认主页即“Default.aspx”页面的设计窗口中放置一个文本框(ID:Text Box_code)及一个确定按钮(ID Button_commit)。代码如下:
5)由于源代码中涉及到绘图,故需要引用“System.Drawing”。
6)转到“Default.aspx”页面的代码窗口,在文本框及确定按钮之间添加一个图片标签,并设置其src属性为“Create VCode.aspx”。代码如下:
此时,若运行网站,将得到如图1所示的效果。
但是尚未对该验证码进行验证,而其实验证码已经保存在Session对象中,故对验证码验证的过程其实是判断用户输入的验证码与Session中的是否一致。
3 图片验证码的验证
1)选择“Default.aspx”页面的代码窗口,为确定按钮设定事件及方法。代码如下:
上述代码编写了Button_commit_Click方法,该方法用于获取用户在文本框中输入的信息,并与Session中的信息进行比对,如果两者一致,将得到如图2所示的效果,用户可进行下一步操作。若输入不一致,将得到如图3所示的效果,图片验证码将自动刷新,由用户重新输入。
4 结束语
验证码技术是为防止非法用户恶意攻击、批量注册的有效方法,用ASP.NET技术实现带干扰的图片验证码,具有使用价值。但是本文中使用的字符较少,仍可被较高级的图片识别技术准确识别。因此,仍具有安全隐患,具体解决方法还有待于进一步研究。
摘要:该文讲述使用ASP.NET技术实现当今互联网登陆模块中流行的验证码,简述验证码的原理、作用、产生方式、并对该验证码进行有效验证。通过该文的阐述,可以帮助网络用户加强互联网安全性的意识,为网站编程爱好者提供技术的参考,防止非法用户使用注册机批量注册、登陆网站。
关键词:互联网,验证码,ASP.NET,C#,验证
参考文献
[1]谢世煊.C#程序设计及基于工作过程的项目开发[M].西安:西安电子科技大学出版社,2010.
[2]密君英.ASP.NET动态网站开发技术实用教程[M].北京:中国电力出版社,2008.
12306验证码,真的不靠谱? 篇6
看到网站上的奇葩验证码,网友们纷纷献计献策,我个人觉得难度最大的应该是下面这种了:
然而,吐槽归吐槽,在这小小的验证码背后,其实有着许多有趣的故事。屏幕上的方寸之间,其实有着智力上的激烈交锋。在验证码不断发展的背后,是一场场来势汹汹的技术变革。而这场变革,我们每个人都身在其中。
验证码的起源
想必很多人都觉得1 2306的验证码“反人类”,但其实,“反人类”的验证码最初是用来“反机器”的。
1 998年,康柏电脑公司的四位程序员马克·李布瑞吉、马丁·阿巴迪、克瑞斯那·巴拉特和安德雷·布罗德向美国专利局提交了一份专利。在这份专利里,他们提出了一种选择性限制计算机系统访问的办法。他们提出这个方法的主要目的,是为了防止脚本机器人自动向他们的搜索引擎提交网址。
在这篇专利里,他们采用随机生成含有字符串的图片这一方法来生成验证码,并通过扭曲外观和添加背景来避免图片被OCR (光学字符识别)技术破解。
区分人与机器的验证码
想必大家一定见过类似右边的验证码图案。而熟悉的验证码技术背后,隐藏的是这样一个很深奥的问题:如何区分真人和机器?——即如何证明坐在电脑前的是一个活人而不是一段程序呢?
在这个问题上,一种解决方案是“图灵测试”,即“人类向计算机提问”。而验证码恰好相反,是“机器提问人类解答”,因而验证码也被认为是“反图灵测试”。
2003年,路易斯·冯·安等人提出了“全自动区分计算机和人类的公开图灵测试”,即CAPTCHA。
这个短语,正是验证码的名字。
而这就引发了一个新的问题:机器向人类提出的问题,能让机器人解答吗?如果机器人能够识别验证码,那不是意味着这个验证码不再能够验证“人类”和“机器”了?
从这以后,各种各样的验证码和验证码破解层出不穷,程序员们的创意和才智在这方寸之间得到了尽情发挥。而我们,也终于有幸体验到了买火车票之艰难。
程序员们智力的角逐
早期的验证码可能只是一串简单的ASCⅡ字符,比如黑客们用“|-|3|_|_()”“)一(3££0”代表“HELLO”。这个后来发展成了火星文(leetspeak),o(口)o。
后来验证码变成了图片显示字符串或者数字的形式,这也是我们最常见的验证码。
早期的验证码采用扭曲字符和梯度背景,然而好景不长,这样的验证码很快就被破解了:由于图片中字符与背景颜色之间差异较大,于是程序员们可以利用算法将图片中的每一个像素点的值提取出来,然后判断哪些是背景部分,哪些是字符部分。这样将字符与背景分离。
接着,将分离出来的字符与“训练库”(也就是存有这些字符的资料库)里的字符进行最终识别。而且由于英文只有26个字母,而阿拉伯数字只有1 0个,这样的验证码识别难度也大大降低。
如果一切顺利,根据上面的流程计算机能很容易地识别验证码,并不需要人。这样验证码,也就被破解了。
于是,喜闻乐见的是我们迎来了中文验证码,庞大的中文字符库保证了验证码识别的难度(还混用了拼音)。而不会中文的外国人则开始逆向思考验证码识别技术并进行有针对性的对抗。他们把各个字母粘连起来,这增加了算法上分隔每一个字符的难度。并且每次采用不同的字体也能增加模式匹配的难度。
而到了1 2306这个程度,考验的就不单纯是图案识别了,还有某些抽象思维的能力——比如我得知道“紫砂壶”到底是个啥,或者至少知道它长啥样,我才能选到正确的验证码图案。这,也就是我们俗称的“智商”……
然而,这样的图片验证码也并不是一劳永逸的,有人展示了用网络上的识图算法来机器识别12306图片验证码的一种思路。原理大概是这样的:首先将验证码的图片分割成一个个单独的图片,然后将这些图片上传到机器识图的网站上,网站会返回左边的答案。
图片来源:zhihu.com
接着,只需要让机器识别出验证码的“问题”,也就是需要点击的图片是什么“东西”——在这个例子里是“紫砂壶”——最后让计算机——匹配就可以了。
并且他认为12306的这一方法其实并不靠谱,存在三个问题:
1.图片过于复杂、混淆过多、条件太诡异时会挡住大部分正常用户;
2.容易被枚举,题库太弱,不如字符组合可能性多;
3.破解门槛不一定高于字符型CAPTCHA。
对于这个分析,我“举双手双脚”赞成。我买不到票不是智商低,而是因为我们属于被挡住的“大部分正常用户”,嗯,一定是这样的。
然后现在,铁路总局已经表示,1 2306网站将调整图形验证码中图片的清晰度和分辨率,而且可能剔除根据后台统计出来大家反映最多的和错误率较高的图片验证码……
图片来源:buzzedtip.com
更多的……验证码?
当然,还有一些更奇葩的验证码。这些验证码已经变成了一种游戏,而不是单纯的为了区分人类与机器了。
面对越来越复杂的验证码,算法可能捉襟见肘,然而还有一种万能的破解方式,那就是:人工识别。即将验证码分发给分布式的客户端,客户端人肉识别,返回结果。
还有人专门开发了客户端软件,让没事干的大学生人肉识别验证码赚些小钱。如果在线人数足够多,任务下达后几乎都是秒回的,效率也是不错的。所以,识别验证码也是一项赚钱的技能。
验证码还能十啥?
验证码也并非都是那么奇葩,它也可以用来做一些非常有意义的事情。
例如:卡耐基梅隆大学的路易斯·冯·安等人(对,就是前面提到的造出CAPTCHA这个短语的人)设计了一个名叫reCAPTCHA的系统,对古籍进行数字化。
reCAPTCHA将OCR (光学字符识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回卡耐基梅隆大学。
reCAPTCHA在2009年被Google收购,而Google将这一技术发扬光大,不仅用来识别古籍,还用来识别Google街景的街道地址。所以,有一段时间,你会发现google的验证码变成了某个门牌或者路标:
图片来源:tumblr.com
验证码的未来
“反人类”的验证码,从始至终对抗的就不是人类,而是有着庞大计算能力却在模式识别、抽象思维上很弱的计算机。
然而,随着人工智能技术的进步,计算机在模式识别上也越来越强大,验证码也不得不走上越来越“扭曲”“复杂““反人类”的不归路。验证码难度的提升,本质上体现了人工智能技术的进步。
而目前,无论我们多么吐槽1 2306的验证码,但至少,我们还能够通过它证明我们是真人,而不是机器。这在某种程度上说明了人类在智能上的优越性,至少现在,我们还是比机器智能优越(或许有一部分小伙伴没法证明)。
目前,Google的算法在扭曲文本类验证码的识别率已经达到了99%,也就是说,这类验证码已经不能作为区分人类和机器的指标了,而总有一天,12306的验证码也会被破解,到那时,为了区分机器和人类,程序员们又该设计出什么样的验证码呢?
用PHP实现的浮动验证码 篇7
验证码是网页上常见的元素,其意义是防止机器自动填写网页上的表单,但由于一般的验证码仍然易于破解,所以出现了不少防止破解的验证码方案,比如在验证码的背景上加干扰元素。由于干扰元素很容易干扰用户,所以干扰元素不能干扰的太过分,而降低干扰强度就意味着降低破解难度。
浮动验证码的思路是验证码在背景上飘动,由于这是个动态的图像,所以在干扰强度很强的情况下,用户仍然能够很容易的分辨出验证码来,这样就在不降低破解难度的条件下降低了对用户的干扰。
2 GD库
GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
3 设计
验证码由四位数字组成,背景是30条随机的粗线,线宽为4,这样会有效的提高破解难度。四个数字上下浮动,以让用户可以容易的辨明验证码。
四个数字的移动是随机的。以第一个数字为例,它的起始位置是随机的,然后它向另一个随机位置运动,运动到这个位置后再向一个随机位置移动,如此反复。
4 输入验证码的页面
form.php是一个页面,页面上显示一个验证码图片,并有一个供用户输入验证码的表单。
生成一个位的随机数,并把这个随机数放在会话中。
<?php
session_start();
$code=rand(1000,9999)
$_SESSION['code']=$code;
?>
$_SESSION['code']存储的就是这个验证码。
2)随机设定30条线的起点横坐标,起点纵坐标,终点横坐标,终点纵坐标。
$_SESSION['x1']=array();
$_SESSION['x2']=array();
$_SESSION['y1']=array();
$_SESSION['y2']=array();
for($i=0;$i<30;$i++){
$_SESSION['x1'][]=rand(0,300);
$_SESSION['x2'][]=rand(0,300);
$_SESSION['y1'][]=rand(0,300);
$_SESSION['y2'][]=rand(0,300);}
其中$_SESSION['x1'][0]代表的是第一条线的起点横坐标,$_SESSION['y1'][]代表的是第一条线的起点纵坐标……
3)设定4个数字的起始位置和运动的目标位置
$_SESSION['cur']=array();
$_SESSION['nex']=array();
for($i=0;$i<4;$i++){
$_SESSION['cur'][]=rand(100,200);
$_SESSION['nex'][]=rand(100,200);}
每个数字的横向位置都是固定的,移动只是上下移动。$_SESSION['cur'][0]代表的是第一个数字在验证码图片中的纵向位置,$_SESSION['nex'][0] 代表的是第一个数字在验证码图片中目标的纵向位置……
4)验证码图片以及填写验证码的表单
<image id="verify" src="fudong.php" />
<form method='post' action='verify.php'>
请输入验证码:<input type='text' name='code' />
<input type='submit' />
</form>
注意这个验证码的图片是个php文件。
5)设定定时器
<script language="Java Script">
function dong()
{var verify=document.get Element By Id('verify');
verify.set Attribute('src','fudong.php?'+Math.random());
set Timeout(dong,100);
}
set Timeout(dong,100);
</script>
过一段时间刷新一次图片,其中在问号后加一个随机数的意思是不让浏览器用缓存里的图片。
5 生成图片
fudong.php用于生成图片
1)一些初始工作
session_start();
$cur=&$_SESSION['cur'];
$nex=&$_SESSION['nex'];
$x1=&$_SESSION['x1'];
$y1=&$_SESSION['y1'];
$x2=&$_SESSION['x2'];
$y2=&$_SESSION['y2'];
由于$_SESSION[]写起来很麻烦,所以给他们一些别名。
2)开始绘图
$img=imagecreatetruecolor(300,300);
$black=imagecolorallocate($img,0,0,0);
$white=imagecolorallocate($img,255,255,255);
创建图片并创建黑色和白色
3)绘制背景
imagefilledrectangle($img,0,0,300,300,$white);
imagesetthickness($img,4);
for($i=0;$i<30;$i++){
imageline($img,$x1[$i],$y1[$i],$x2[$i],$y2[$i],$black);
}
用imagefilledrectangle给整个图片清白,然后用一个循环绘制线粗为4的30条直线。
4)画出4个数字
$code="{$_SESSION['code']}";
for($i=0;$i<4;$i++){
imagettftext($img,30,0,37+$i*75,$cur[$i],$black,"symbol.ttf",$code[$i]);
if($cur[$i]==$nex[$i]){$nex[$i]=rand(100,200);}
if($cur[$i]<$nex[$i])$cur[$i]++;else if($cur[$i]>$nex[$i])$cur[$i]—;
}
用一个循环绘制每个数字,由于整个图片的宽度是300像素,所以每个数字占75个像素,第一个数字的横向位置是37(75的一半),第二个数字的横向位置是37+75,……
如果目标在当前位置的上边,那就往上走($cur[$i]—),否则就往下走。如果已经到目标了,那么重新设置下一个目标(表达目标的是$nex[$i]),把下一个目标设置成一个随机数。
5)生成图片
header("Content-type:image/png");imagepng($img);
imagepng($img);
6 结论
用浮动的验证码既能够让用户可以分辨出验证码,又大大增强了机器破解的难度,是一个好方法。
摘要:一般的验证码易于破解,而加上干扰元素的验证码的缺点是容易让用户也无法识别验证码。浮动验证码的思路是让验证码在干扰强度很大的背景上飘动,这样就同时达到破解难度强和易于让用户识别的目的。
基于SVM的验证码识别算法研究 篇8
关键词:SVM支持向量机,验证码,识别算法
随着互联网技术的快速发展和应用, 网络提供给我们越来越多的资源, 也极大地便利了我们的生活和工作。与此同时, 也产生了很多的互联网网络安全问题。验证码 (CAPTCHA) 是卡内基梅隆大学提出的全自动公开的区分人类和计算机的图灵测试技术, 目前大部分网站都引入了验证码这种安全机制来解决机器人滥用自然人资源的问题。支持向量机 (英文简称SVM) 是统计学习理论基础上发展出的一种新的模式识别方法, 在解决小样本、非线性及高维等模式识别问题中具有较多的优势。因此, 本文针对SVM这一机器学习算法在验证码识别技术中的应用进行研究分析。
1 支持向量机 (SVM) 概述
SVM是在20世纪90年代由Vapnik等人最先提出的, 之后就在机器学习研究领域得到了广泛的应用, 并迅速成为机器学习与数据挖掘等领域的发展中最主要的工具。其主要的理论基础是统计学中的经验风险最小、学习过程一致性、VC维理论以及结构风险最小化等理论。SVM以其独特的算法在处理小样本、非线性或者高维模式识别等问题中具有很大的优越性。目前, SVM主要被应用在系统辨识、故障判断、金融系统、数据挖掘、生物信息、人脸检测、验证码识别、表情识别、文本分类以及手写字符识别等众多领域。在本文中主要研究了其在验证码识别算发展中的应用问题。
2 验证码识别概述
验证码识别这一技术的产生, 最早是为了应用在计算机图灵测试中, 之后就在计算机网络应用中迅速发展。当前验证码的设计主要是为了辨识人为操作或是计算机自动运行, 从而有效的避免网站或程序受到恶意攻击或侵袭。另外, 在验证码识别技术的不断发展下, 也在此基础上形成了一批新的计算机业务, 例如在电子商务的商品推销方式中使用到验证码识别技术, 或者在残障人士的正常上网问题解决中的应用等等。关于验证码识别的方法目前由很多种, 包括模板匹配、形状上下文、神经网络以及支持向量机等。相对来讲, 模板匹配为最简单的一种识别算法, 但应用范围较小, 且准确率较低, 没有良好的系统性, 因而逐渐被淘汰出验证码识别技术。形状上下文与神经网络等方法也都存在着一定的问题与缺陷, 如准确匹配度较低或收敛速度难以控制等, 因而也不是最佳的验证码识别技术方法。直到近年来在SVM的不断发展应用中, 使用其进行验证码的识别计算才去的了较好的效果。采用SVM具有分类能力较强, 泛化能力优良, 并且其是以统计学理论为依据, 因而在分辨验证码识别度的应用中具有很好的应用效果。
3 基于SVM的验证码识别算法研究
3.1 验证码识别的流程。
一般来讲, 进行验证码识别, 需要经过一些必要的环节。这些环节主要包括以下几点:首先, 检测出验证码图片, 并对其进行感兴趣区域 (ROI) 剪切、去噪、色彩空间转换等预处理;其次, 将预处理后的图片进行特征分析, 并提取特征向量;第三, 将图像样本的特征向量进行SVM训练, 训练得出相关的参数与支持向量, 并将这些数据信息存储在一定的文件中去;第四, 利用第二步中采用的方法, 提取所要识别的验证码的特征向量;第五, 将待识别样本的特征向量, 以及第三步得到的支持向量等训练结果, 进行SVM预测, 输出预测结果到文件, 再对识别率进行计算, 最终完成验证码的识别流程。
3.2 样例的制作与训练。
在提取识别码的特征向量时需要制作一定的样例, 而样例制作的关键是要选择合适的图像预处理方法。一般的预处理方法主要有图像平滑、中值滤波、直方图均衡、梯度锐化、灰度变换、二值化、去除噪音、腐蚀、膨胀和细化等。只有这样才能有效的去除图像的背景、噪声以及干扰线等噪音, 从而精准的分隔验证码图片, 提出有效的字符特征向量, 才可能使SVM训练时找到合适的分类超平面。而在训练中, 初始参数的设置是很重要的, 这是直接影响大批SVM泛化能力的关键。例如C-SVC, 当我们选择RBF核函数时, 惩罚系数的设置非常关键, 当C>100时才能使SVM体现出较好的泛化能力。
3.3 识别验证码。
当SVM训练完成之后, 就可以对验证码进行识别。在读取所要识别的验证码时, 应该按照验证码的识别流程进行处理, 将提取出的有效特征向量输送到SVM预测接口进行预测, SVM利用训练好的模型进行预测。我们采用投票机制, 将待识别的验证码的特征和模型中的支持向量分别进行运算并进行投票, 得票最多的类别就是该验证码的类别。当识别完成后, 输出识别结果, 并计算识别率。可以看出, 在验证码的识别过程中, 最关键也是最核心的部分就是SVM模块。正是通过SVM的训练、识别、预测以及计算, 才很好的实现了验证码的图像分类识别功能。
4 验证码识别实验
在该实验中, 我们分别对三种不同的验证码进行了实验。这三种验证码图像都是在一些网站中随机采集到的, 并分别采用不同的图像预处理过程。其特征分别为:A验证码图片的字体较为规范, 字符大小统一, 且没有扭曲变形或字符旋转;B验证码图片的字体规范, 但字符大小不统一, 字符旋转;C验证码图片的字体不规范, 字符大小也不统一, 并且有扭曲变形和字符旋转。分别如图所示:
在试验中我们分别对A、B、C这三个验证码图片分别进行了特征向量提取, 并将所提取的特征向量随机分为两组, 分别进行特征训练和识别测试。并采用径向基函数作为核函数进行计算, 将其主要的两个参数, γ与C的值进行了提取分析, 并计算了试验的识别率。
在经过分析后我们发现, 本实验中, 当γ不变, C逐渐变大时, 验证码识别率不断提高, 当C增大到一定程度时, 识别率不再提高。因为该验证码旋转和大小不统一, 识别准确率下降。而当C不变, γ逐渐增大时, 识别率先是不断提高, 但当γ值增大到一定程度时, 识别率就开始下降。从实验可以看出, 当验证码的字符很标准, 且没有扭曲变形、大小变化或偏移旋转时, 验证码的识别率可达到100%, 而即使是相对较为复杂的验证码, 利用SVM进行识别也能达到80%。由此可见, 在验证码的识别算法中, 采用SVM的方法是具有很大可行性与准确性的。
结语:总之, 在验证码逐渐被广泛应用在各个互联网领域中时, 对其进行识别计算方法的准确性要求也越来越高。SVM作为一种具有较强识别能力的识别方法, 在未来的验证码识别计算中必将具有更加广阔的发展前景。
参考文献
[1]左保河, 石晓爱, 谢芳勇, 等.基于神经网络的网络验证码识别研究[J].计算机工程与科学, 2009 (12) .
[2]朱树先, 张仁杰.支持向量机核函数选择的研究[J].科学技术与工程, 2008 (16) .
[3]边肇祺, 张学工.模式识别[M].北京:清华大学出版社, 2002.
[4]贺强, 晏立.基于形状上下文的复杂验证码识别算法[J].计算机工程, 2001, 37 (2) .
搜索小学品德学科教学的验证码 篇9
关键词:小学品德 教学 验证码
中图分类号:G62 文献标识码:A 文章编号:1674-098X(2012)09(c)-0192-01
《品德与生活课程标准》明确指出:“(品德与生活)课程面向儿童的整个生活世界,重视地方、学校、教师与儿童的创造性,课程的内容从教科书扩展到所有对儿童有意义、有兴趣的题材,课堂从教室扩展到家庭、社区及其儿童的其他生活空间,时间可以在与学校其他活动或学校的配合和联系中弹性的延展。”儿童的健康成长需要家庭、学校、社会的共同关注。
1 本位验证——课堂教学须有效
1.1 把握教学目标的正确性
伴随着新一轮课程改革实验,品德课程以全新的综合课程面貌出现了。在品德新课程实施过程中,如何正确理解、定位、把握,达成目标,成了当前许多教师教学中遇到的共同问题。我们应以整体思想为指导,正确理解教学目标。品德课程的三维目标是一个整体。知识、技能的东西是外显的,比较容易量化的,越到能力、情感、态度、价值观,越难以测量。但我们不能因为不可测量就不去关注,教育工作者应更多地关注更本质的东西。情感的目标,能力的要求,不是某一节课、某一周能完成的,但是每节课必须体现这些目标,靠在一个比较长的阶段,通过教师利用课程资源去熏陶,由学生去体验,通过潜在的积累而获得。
1.2 体现教学活动的生成性
教材的呈现往往是一种静态的结构,而课堂教学却是生成性,动态的过程。这就要求老师在预计教学活动时,必须既考虑学生的整体状况又要关注本班学生中的个体差异,预设方案要具有弹性,在课堂教学过程中根据学生活动发展的进程不断地调整和完善。我们可以改变教材呈现顺序,或有选择地使用教材,或干脆安排一次活动,一次对话来替代某一具体培养目标下的教材等,达到知、情、意、行的统一。在课堂教学中,教师不应拘泥于教材的预设,而应艺术地捕捉住与儿童的现实生活息息相关的各种教育因素,去再现现实生活,使课堂充满生命力,同时也赋予教材以现实的生命力。
2 合作验证——家校联通促实效
孩子良好品德的形成需要家长的配合,品德与生活的教学需要家长的合作参与,需要从课堂向课外拓展,从课堂扩展到家庭及其儿童生活的许多空间,实现课堂内外、学校内外学习的有机结合。如:一年级上册第三单元“我爱我家”第3课“我会管好我自己”,教学时,如果我们只在课堂上进行说教,活动就只能停留在口头上,不能落实到行动上,体会就不深刻。若要学生用实际行动证明自己的课堂承诺,教师又不可能去一一落实、去指导。为此,教学时我就充分发挥家长的作用,让家长成为我们的合作者,参与到课堂教学的延伸活动中。制作了家校“联系卡”(如记录每天的行为等)从自己的实际出发,为家庭做力所能及的事。
尊敬的家长:
“尊敬长辈,自己的事情自己做”是中华民族的传统美德,让孩子在家庭中做力所能及的事,请家长给予支持,谢谢!
家长寄语:
一年级(1)班 学生 家长
3 实践验证——无痕延伸育真品
我们现在的德育把孩子封闭在校园这片“净土”之中,给予他们纯粹的真善美的教育,使他们缺乏对真实世界的认识,成为“笼中之鸟”。一旦接触社会,就会在真实的“现实规范”与学校的“理想规范”间彷徨无助,继而产生心理的错位。要改变这一现状,就必须让德育从封闭的校园走出来,回归到无限宽广的生活中去。
纵观我们当前《品德与生活》、《品德与社会》教材,其中很多内容涉及社会生活。
3.1 课前小实践
相同的教材,可以有不同的拓展,这就要根据学情而定了。教学既依据教材又不拘泥于教材,各自充分利用本地课程资源灵活进行,使课堂与学生真实生活之间建立起一种有机的内在联系,从而使教学源于生活、富含生活、高于生活、引导生活,实实在在地促进了学生的发展。
3.2 课中实践
品德课堂中的好多内容,可以或者说需要甚至是必须在社会生活中实践,当然这要结合本地特点,用实践体验来替换、补充教材,使品德教学更具有真实性与实效性。
一位教师在执教《欢欢喜喜过春节》时,课前没有认真了解学生的实际生活,只是照本宣科地大谈“庙会”。而我们南方孩子有逛庙会体验的极少,面对着毫无生活经验的课程资源,孩子们哑口无言,整堂课成了教师的“独角戏”。而有一位教师却将教材中的这块内容替换为讨论我们是怎么过春节的:挂灯笼、倒贴福字、贴春联、分压岁钱、拜年等等,学生从中感受到过年是多么的快乐啊!
只有向社会生活开放的课堂,才能唤起学生的学习兴趣,才能实现对学生的引领。
3.3 课后延伸
品德教学的课外延伸是十分重要的,课外实践活动对于增强品德教学的有效性具有很大的促进作用。如果我们只是一味的依赖教材中的素材,而不是有针对性的开拓、利用相关的课程资源,尤其是社区课程资源,那么,我们的教学形式有如画饼充饥,失去实效。
4 整合验证——学科相融达综益
《品德与生活课程标准》指出:“本课程教学活动应注意利用其他学科的成果,与其他学科相互结合,资源共享,实现综合效益。”
以课时数为最多的语文学科来说,要做好品德课与语文学科的相互链接和整合,首先要“整合”两门学科的知识点,这是教育好学生的前提,也是轻松驾驭课堂的基础。
教学中,我们要善于挖掘这些知识的结合点,适时恰当地运用,会收到事半功倍的效果。
苏霍姆林斯基强调:“道德,只有它在被学生自己去追求,获得亲自体验的时候,才能真正成为学生的精神财富。”德育新课程,只有教师更多的關注学生通过启发学生的发散性思维,努力引导学生在原有生活的回顾中,自主建构起积极向上、愉悦有益的“品德大厦”,并抓住课堂中一闪而过的生成性资源,引领学生从生活中来,到生活中去,才能使我们的教学真正走进学生,引导生活,学会做人,让师生充分感受到品德课程的无限魅力。
参考文献
[1] 义务教育品德与生活(社会)课程标准(实验稿).
[2] 中国家庭教育.2008(2).
基于C#的验证码的绘制 篇10
1 技术原理
1.1 Random类
在C#中,通过Random类生成随机数,随机算法的起始数字是种子数,在种子数的基础上进行变换,最终产生需要的随机数。本文采用Random类的Next()方法(如表1所示)来返回随机数。
1.2 GDI+绘制技术
GDI+是.NET框架中提供二维图形、图像处理的功能,在较早GDI版本的基础上添加了新的功能并改进了现有功能,为开发者提供了一组实现与各种设备(如显示器、打印机等)进行交互的库函数。
Graphic类封装一个GDI+绘图图面。Graphic对象是用于创建图形图像的对象,Graphic类的Draw String()方法用于在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。
2 实现过程
1) 启动VS 2010,新建一个C#的Windows窗体应用程序。在窗体中添加一个Button按钮和一个Picture Box控件,分别用于生成验证码和显示验证码。
2) 实现代码
(1) 生成4位由英文和数字组成的字符串
(2) 将CKCode方法生成的字符串转化为Bitmap位图添加到Picture Box控件private static Image Code To Pict(string verify Code)
运行效果如图1所示。
3 结束语
该文采用GDI+技术和C#程序语言完成了验证码的绘制,GDI+是对Windows操作系统GDI函数库的扩充,可以在窗体程序中产生很多自定义的图形,便于开发人员展示图形化的数据。
摘要:验证码技术通常使用一些线条、随机数、符号和不规则的字符组成,借此防止一些黑客把密码数据化或者在网络上用机器人自动注册、登录和灌水。为此该文介绍了一种基于C#和GDI+技术的验证码的实现方法。
关键词:验证码,GDI+,随机数
参考文献
[1]William Stalling.密码编码学与网络安全[M].北京:电子工业出版社,2004.
[2]耿肇英,赵建立.C#应用程序设计教程[M].北京:人民邮电出版社,2009.
[3]明日科技.C#程序开发范例宝典[M].北京:人民邮电出版社,2010.