目录
Web应用验证码方面总结(ASP.NET版) 1
目录 2
修订历史纪录 3
1 验证码在Web应用上的作用 4
2 验证码示例 5
2.1 5
2.2 mail.qq.com 5
2.3 www.baidu.com 5
2.4 mail.gmail.cn 6
2.5 回答问题的验证码 6
3 验证码的识别技术 6
3.1 对比库 6
3.2 程序计算 6
3 验证码在ASP.NET下的实现 6
1 验证码在Web应用上的作用
随着互联网的发展,上网冲浪的人越来越多。在巨大的商机面前,为互联网提供增值服务的机构与日剧增。在这些服务之中,有一大部分需要用户首先注册、登录站点之后,才可以享受它提供的服务。现在存在这样一种情况,别有用心的人使用编写的程序,大量的重复注册某一个站点(免费的),这使这个站点产生了大量无用的用户占用了服务器的存储资源。类似的情况还有很多,他们的共同点——就是使用自动的程序(比人手动快许多)向站点提供巨量的对这个站点毫无价值、甚至于有害的信息,影响站点正常的经营活动或是谋取私利。
防止这种现象,是验证码出现的主要原因。他在页面上显示出一串信息,并要求用户作出正确的回应,如果做出的回应正确,用户才能继续或完成希望的操作。验证码要完成的就是防止机器程序能够自动的识别验证码的内容,同时要保证用户能够识别出来。
2 验证码示例
2.1
2.2 mail.qq.com
2.4 mail.gmail.cn
2.5 回答问题的验证码
验证码是一个问题,如1+1,要求用户回答问题。
3 验证码的识别技术
识别技术指,同样使用程序,自动的识别验证码的内容。
3.1 对比库
做法就是建立一个数据库,存储所有字符的特征资料。在识别时读取页面上的图像,之后同特征库进行对比,从而识别验证码。
3.2 程序计算
读取验证码的图像,搜集其中的像素信息,之后使用复杂的算法,排除干扰信息,计算出字符的内容。
3 验证码在ASP.NET下的实现
使用.NET Framework的GDI+,绘制一个图像是比较常用的方法。
主要涉及的内容:1 随机。产生的验证码内容、产生的验证码的颜色、三验证码在图像中出现的位置、干扰因素出现的位置,全部随机。2 干扰因素。为防止验证码被不明程序自动识别,要在图像中加入干扰因素阻扰程序的识别。
下面是一个较简单的例子,供参考(使用GDI+):
这是一个ASP.NET页面的隐藏代码,使用它只需在另一个页面中设置一个Image控件,将他的src属性设置为这个页面即可。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
public
partial
class
GenerateValidPicture : System.Web.UI.Page
{
protected
void Page_Load(object sender, EventArgs e)
{
this.CreateCheckCodeImage(GenerateCheckCode());
}
private
string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;
System.Random random = new
Random();
//generate five length string constitute of digit and letter.
for (int i = 0; i < 5; i++)
{
number = random.Next(); //generate a radom integer.
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10)); //generate a digit char.
else
code = (char)('A' + (char)(number % 26)); //generate a letter char.
checkCode += code.ToString();
}
Response.Cookies.Add(new
HttpCookie("CheckCode", checkCode));
return checkCode;
}
private
void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
return;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
try
{
//生成随机生成器
Random random = new
Random();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
for (int i = 0; i < 25; i++)
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new
Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new
Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点
for (int i = 0; i < 100; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片的边框线
g.DrawRectangle(new
Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
}
分享到:
相关推荐
ASP.NET Web API 是微软开发的一种用于构建 RESTful 风格的应用程序的框架,它可以用于创建Web服务,这些服务能够以HTTP协议与多种客户端通信,包括浏览器和移动设备。在这个特定的案例中,我们将探讨如何利用ASP...
在本篇文章中,我们将深入探讨Asp.net验证码控件的工作原理、类型以及如何在实际项目中应用。 **1. Asp.net验证码控件的原理** 验证码控件的主要目的是创建一个动态生成的、一次性使用的图像,其中包含随机的字母或...
ASP.NET动态验证码是一种用于验证用户身份的安全机制,广泛应用于网页登录、注册和其他涉及用户交互的安全场景。它通过生成随机的图像和文字组合,要求用户在输入框中输入看到的字符,以此来防止自动化的机器人或者...
ASP.NET MVC是一个强大的Web应用程序开发框架,用于构建动态、数据驱动的网站。在这个场景中,我们关注的是在ASP.NET MVC中实现验证码的功能。验证码的主要目的是防止自动机器人或恶意用户进行非法操作,例如垃圾...
验证码是Web应用中常见的一种安全机制,用于防止自动化的机器人或者恶意软件进行非法操作,比如批量注册、垃圾信息发布等。在ASP.NET框架下,我们可以利用C#编程语言来实现一个高效且安全的随机验证码生成器。本文将...
ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地创建动态、交互式的网站。在这个特定的场景中,我们关注的是如何在ASP.NET中实现验证码功能,这是一种用于验证...
ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和强大的性能,使得开发者可以轻松地创建动态、交互式的网页。XPASP验证码控件是ASP.NET开发中常用的一种安全组件,主要用于防止自动化程序...
ASP.NET 图片验证码是一...总结来说,ASP.NET图片验证码是Web开发中的一个重要组件,用于增强网站的安全性。通过自定义库如Bpcode.dll,开发者可以快速、方便地集成这一功能,同时保持对验证码复杂性和用户体验的控制。
ASP.NET 是微软开发的一种用于构建动态网站、Web 应用程序和Web服务的框架。它基于.NET Framework,提供了丰富的功能和高效性能。XPASP验证码控件则是针对ASP.NET平台的一个第三方组件,主要用于增强网站的安全性,...
通过"图形验证码生成_asp.net"这个项目,开发者可以学习到如何在ASP.NET环境中实现一个完整的图形验证码系统,包括生成、发送、验证和安全防护等多个环节,这些知识对于构建更安全的Web应用非常有价值。
验证码在Web应用中扮演着重要的角色,主要用于防止自动化的机器人程序进行恶意操作,例如注册、登录、评论等。本实例是关于ASP.NET平台下验证码的实现,它将帮助你理解和掌握如何在你的ASP.NET应用程序中集成验证码...
本项目“图片数字字母验证码识别asp.net源码”提供了C#编程语言实现的验证码识别解决方案,特别适用于ASP.NET web应用程序。接下来,我们将深入探讨这个领域的相关知识点。 首先,验证码识别通常涉及到图像处理和...
总的来说,ASP.NET和C#提供了一个强大的框架来创建这种交互式的Web应用程序。通过这个示例,我们可以学习到如何结合HTML、CSS、JavaScript以及服务器端的C#代码来实现一个基础但有效的验证码系统,提升Web应用的安全...
3. **示例项目**:可能包括一个或多个ASP.NET Web应用程序示例,演示了如何在实际项目中使用该验证码控件。 4. **文档**:可能包含README文件或者用户手册,解释了如何安装、配置和使用该控件。 5. **资源文件**:如...
ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态网站、Web服务以及Web应用程序。在ASP.NET中实现验证码是一种常见的安全措施,用于防止自动化程序(如...
总结起来,"简单验证码ASP.NET程序"是一个自包含的解决方案,提供了灵活的字符集选择和图像绘制功能,能够快速集成到任何ASP.NET项目中,有效提升网站的安全性。通过理解和掌握这个程序的工作原理,开发者可以学习到...
这个控件是一个DLL文件,可以直接集成到ASP.NET的Web应用程序中,为开发者提供了方便快捷的方式来实现验证码功能。 首先,让我们了解一下ASP.NET。ASP.NET是Microsoft .NET框架的一部分,是一个用于构建动态网站、...
ASP.NET验证码是微软ASP.NET框架中用于验证用户输入的有效性的一种机制,主要目的是防止自动化的机器人或恶意软件进行非法操作,如批量注册、恶意登录等。验证码通常涉及到图像生成、用户交互以及验证过程。 在ASP...
ASP.NET 是微软开发的一款用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态、交互式的网站。在ASP.NET 2.0版本中,引入了Ajax技术,大大提升了用户体验,因为Ajax允许页面的部分...
ASP.NET MVC是一个强大的框架,用于构建可伸缩、高性能、易于维护的Web应用程序。在这个“基于ASP.NET MVC的图片滑动验证码,极限验证实例源码”中,我们深入探讨了如何利用C#语言和.NET Framework来实现一种有效的...