`
mlzboy
  • 浏览: 724821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Web应用验证码方面总结(ASP.NET版)

阅读更多

 

目录

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.3 www.baidu.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编程知识】Asp.net Web Api实现图片点击式图片验证码功能.docx

    ASP.NET Web API 是微软开发的一种用于构建 RESTful 风格的应用程序的框架,它可以用于创建Web服务,这些服务能够以HTTP协议与多种客户端通信,包括浏览器和移动设备。在这个特定的案例中,我们将探讨如何利用ASP...

    Asp.net 验证码控件

    在本篇文章中,我们将深入探讨Asp.net验证码控件的工作原理、类型以及如何在实际项目中应用。 **1. Asp.net验证码控件的原理** 验证码控件的主要目的是创建一个动态生成的、一次性使用的图像,其中包含随机的字母或...

    ASP.NET动态验证码

    ASP.NET动态验证码是一种用于验证用户身份的安全机制,广泛应用于网页登录、注册和其他涉及用户交互的安全场景。它通过生成随机的图像和文字组合,要求用户在输入框中输入看到的字符,以此来防止自动化的机器人或者...

    asp.net mvc验证码实现

    ASP.NET MVC是一个强大的Web应用程序开发框架,用于构建动态、数据驱动的网站。在这个场景中,我们关注的是在ASP.NET MVC中实现验证码的功能。验证码的主要目的是防止自动机器人或恶意用户进行非法操作,例如垃圾...

    用asp.net生成随机验证码.rar_.NET验证码_asp.net_asp.net C#_生成验证码_验证码

    验证码是Web应用中常见的一种安全机制,用于防止自动化的机器人或者恶意软件进行非法操作,比如批量注册、垃圾信息发布等。在ASP.NET框架下,我们可以利用C#编程语言来实现一个高效且安全的随机验证码生成器。本文将...

    asp.net实现验证码功能

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地创建动态、交互式的网站。在这个特定的场景中,我们关注的是如何在ASP.NET中实现验证码功能,这是一种用于验证...

    ASP.NET源码——XPASP验证码控件(ASP.NET DLL) .zip

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和强大的性能,使得开发者可以轻松地创建动态、交互式的网页。XPASP验证码控件是ASP.NET开发中常用的一种安全组件,主要用于防止自动化程序...

    一个asp.net图片验证码

    ASP.NET 图片验证码是一...总结来说,ASP.NET图片验证码是Web开发中的一个重要组件,用于增强网站的安全性。通过自定义库如Bpcode.dll,开发者可以快速、方便地集成这一功能,同时保持对验证码复杂性和用户体验的控制。

    ASP.NET源码——XPASP验证码控件(ASP.NET DLL).zip

    ASP.NET 是微软开发的一种用于构建动态网站、Web 应用程序和Web服务的框架。它基于.NET Framework,提供了丰富的功能和高效性能。XPASP验证码控件则是针对ASP.NET平台的一个第三方组件,主要用于增强网站的安全性,...

    asp.net生成图形验证码

    通过"图形验证码生成_asp.net"这个项目,开发者可以学习到如何在ASP.NET环境中实现一个完整的图形验证码系统,包括生成、发送、验证和安全防护等多个环节,这些知识对于构建更安全的Web应用非常有价值。

    验证码相关实例 ASP.NET

    验证码在Web应用中扮演着重要的角色,主要用于防止自动化的机器人程序进行恶意操作,例如注册、登录、评论等。本实例是关于ASP.NET平台下验证码的实现,它将帮助你理解和掌握如何在你的ASP.NET应用程序中集成验证码...

    图片数字字母验证码识别asp.net源码

    本项目“图片数字字母验证码识别asp.net源码”提供了C#编程语言实现的验证码识别解决方案,特别适用于ASP.NET web应用程序。接下来,我们将深入探讨这个领域的相关知识点。 首先,验证码识别通常涉及到图像处理和...

    验证码产生页 asp.net c#

    总的来说,ASP.NET和C#提供了一个强大的框架来创建这种交互式的Web应用程序。通过这个示例,我们可以学习到如何结合HTML、CSS、JavaScript以及服务器端的C#代码来实现一个基础但有效的验证码系统,提升Web应用的安全...

    [其他类别]XPASP验证码控件(ASP.NET DLL) V1.1_xpaspwebvno(ASP.NET源码).rar

    3. **示例项目**:可能包括一个或多个ASP.NET Web应用程序示例,演示了如何在实际项目中使用该验证码控件。 4. **文档**:可能包含README文件或者用户手册,解释了如何安装、配置和使用该控件。 5. **资源文件**:如...

    ASP.NET 实现验证码

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态网站、Web服务以及Web应用程序。在ASP.NET中实现验证码是一种常见的安全措施,用于防止自动化程序(如...

    简单验证码ASP.NET程序

    总结起来,"简单验证码ASP.NET程序"是一个自包含的解决方案,提供了灵活的字符集选择和图像绘制功能,能够快速集成到任何ASP.NET项目中,有效提升网站的安全性。通过理解和掌握这个程序的工作原理,开发者可以学习到...

    XPASP验证码控件(ASP.NET DLL)_aspx开发教程.rar

    这个控件是一个DLL文件,可以直接集成到ASP.NET的Web应用程序中,为开发者提供了方便快捷的方式来实现验证码功能。 首先,让我们了解一下ASP.NET。ASP.NET是Microsoft .NET框架的一部分,是一个用于构建动态网站、...

    ASP.NET验证码 ASP.NET验证码

    ASP.NET验证码是微软ASP.NET框架中用于验证用户输入的有效性的一种机制,主要目的是防止自动化的机器人或恶意软件进行非法操作,如批量注册、恶意登录等。验证码通常涉及到图像生成、用户交互以及验证过程。 在ASP...

    asp.net验证码ajax

    ASP.NET 是微软开发的一款用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态、交互式的网站。在ASP.NET 2.0版本中,引入了Ajax技术,大大提升了用户体验,因为Ajax允许页面的部分...

    基于asp.net mvc的图片滑动验证码,极限验证实例源码

    ASP.NET MVC是一个强大的框架,用于构建可伸缩、高性能、易于维护的Web应用程序。在这个“基于ASP.NET MVC的图片滑动验证码,极限验证实例源码”中,我们深入探讨了如何利用C#语言和.NET Framework来实现一种有效的...

Global site tag (gtag.js) - Google Analytics