广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >基于ASP.NET实现验证码生成详解
  • 656
分享到

基于ASP.NET实现验证码生成详解

2024-04-02 19:04:59 656人浏览 独家记忆
摘要

作业:验证码 要求: (1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。 (2)验证码上应该有噪点和干扰线条。 (3)验证码应该回避相似字符,如“0&rdqu

作业:验证码

要求:

(1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。

(2)验证码上应该有噪点和干扰线条。

(3)验证码应该回避相似字符,如“0”和“o”“I”和“1”等。

(4)验证码至少是数字和字母(含大小写)的组合,不应该是单纯的数字或字母,可以出现汉字。应该实现输入验证码字母字母“不区分大小写”。验证码中的内容,应该是随机生成。

(5)验证码,可以通过点击图片或旁边文字实现“看不清,换一张”的功能。

(6)应当有个用于核对验证码输入是否正确的tbx和btn,当点击btn时,弹窗提示验证码输入的是正确或错误

新建一个ashx文件

前端页面

<asp:Label ID="Label1" runat="server" Text="请输入验证码:"  ></asp:Label>
<asp:TextBox ID="tbx_check" runat="server"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" src="checknumber.ashx" alt="验证码"/>
<asp:Button ID="btn_check" runat="server" Text="验证" OnClick="btn_check_Click" />

aspx代码

protected void btn_check_Click(object sender, EventArgs e)
{
  //不区分大小写验证
      if (String.Compare(tbx_check.Text.Trim(), Session["check"].ToString(), true) == 0)
      {    
          Response.Write("<script>alert('验证码正确') </script>");
                
      }    
      else
      {
          Response.Write("<script>alert('验证码错误') </script>");
      }
}
 
 
//点击图片更换验证码
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    ImageButton1.ImageUrl = "checknumber.ashx?id=" + new Random(100).ToString();
}

ashx代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.WEB;
//画板
using System.Drawing;
using System.Drawing.Imaging;
//Session传值
using System.Web.SessionState;
 
namespace 验证码模块
{
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class Handler1 : IHttpHandler, IRequiresSessionState
    {
 
        public void ProcessRequest(HttpContext context)
        {
            
            //定义位图的宽度和高度
            int iBmpW = 200;
            int iBmpS = 50;
 
            //创建位图对象(并初始化宽度和高度)
            Bitmap Bmp = new Bitmap(iBmpW, iBmpS);
 
            //创建画布
            Graphics Grc = Graphics.FromImage(Bmp);//将位图装载到画布里面
 
            //将画布的背景色改为白色
            Grc.Clear(Color.White);
 
            //定义画笔对象
            SolidBrush solidBrush = new SolidBrush(Color.Blue);
 
            //定义存放的字符串,画布上要显示的验证码,回避相似字符所以去掉I、1、o、0
            string sString = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghyzklmnopqrstuvwxtz23456789呆锅工酱";
            //定义随机数
            Random Rnd = new Random((int)DateTime.Now.Ticks);//强制转换为整型
 
            //for存放随机数的字符变量
            string scode = null;
            for (int i = 0; i < 6; i++)
            {
                string temp = sString.Substring(Rnd.Next(0, sString.Length), 1);//将随即得到的每个字符进行字符串构造
                scode += temp;
            }
 
 
            //随机输出噪点
            Random rand = new Random();
            for (int i = 0; i < 10; i++)
            {
                int x = rand.Next(Bmp.Width);
                int y = rand.Next(Bmp.Height);
                Grc.DrawRectangle(new Pen(Color.LightGray, 0), x, y, 1, 1);
            }
 
 
            int z = 6;//干扰线条数
            for (int i = 0; i < z; i++)
            {
                int x1 = rand.Next(Bmp.Width);
                int x2 = rand.Next(Bmp.Width);
                int y1 = rand.Next(Bmp.Height);
                int y2 = rand.Next(Bmp.Height);
                Grc.DrawLine(new Pen(Color.LightGray, 1), x1, y1, x2, y2);//根据坐标画线
            }
 
 
            Font ft = new Font("Arial", 25);
            Grc.DrawString(scode, ft, solidBrush, 0, 0);
            context.Response.ContentType = "image/jpg";
            Bmp.Save(context.Response.OutputStream, ImageFORMat.Jpeg);
            //向外传scode的值以验证
            context.Session["check"] = scode;
        }
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

到此这篇关于基于asp.net实现验证码生成详解的文章就介绍到这了,更多相关ASP.net验证码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于ASP.NET实现验证码生成详解

本文链接: https://www.lsjlt.com/news/143939.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于ASP.NET实现验证码生成详解
    作业:验证码 要求: (1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。 (2)验证码上应该有噪点和干扰线条。 (3)验证码应该回避相似字符,如“0&rdqu...
    99+
    2022-11-13
  • ASP.NET如何实现验证码生成功能
    这篇文章给大家分享的是有关ASP.NET如何实现验证码生成功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作业:验证码要求:(1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。(2)验证码上应该有噪点...
    99+
    2023-06-29
  • 基于Python实现原生的登录验证码详情
    目录1、概述2、验证码实现的演进过程2.1 路由及页面2.2 视图函数中验证码的推导2.2.1 图片发送到前端2.2.2 引入动态图片2.2.3 内存管理模块图片2.2.4 完整图片...
    99+
    2022-11-12
  • 基于Java生成图片验证码的方法解析
    目录使用Java生成图片验证码完全解析注意事项如何加入噪点如何生成干扰线什么样的算法生成噪点比较好验证码如何避免被ocr识别如何斜放文本四位图形验证码调整噪点的透明度使用Java生成...
    99+
    2023-02-06
    Java生成图片验证码 Java图片验证码 Java验证码
  • Python实现随机生成图片验证码详解
    使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单 导入模块 import random from PIL import Image,ImageFon...
    99+
    2022-11-13
  • java仿Servlet生成验证码实例详解
    java仿Servlet生成验证码实例详解实现原理:使用BufferedImage对象的Graphics来进行绘制,然后输出成一张图片进行保存实现代码及详解:public class validateCode{ private stati...
    99+
    2023-05-31
    java servlet 验证码
  • python基于opencv批量生成验证码的示例
    基本思路是使用opencv来把随机生成的字符,和随机生成的线段,放到一个随机生成的图像中去。   虽然没有加复杂的形态学处理,但是目前看起来效果还不错   尝试生成1000张图片,但是最后只有998张,因为有有重复的...
    99+
    2022-06-02
    python 生成验证码 python opencv
  • 利用java实现验证码生成并完成验证
    利用java实现验证码生成并完成验证?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java 制作验证码并进行验证实例详解在注册、登录的页面上经常会出现验证码,为...
    99+
    2023-05-31
    java 验证码 ava
  • SpringBoot实现Thymeleaf验证码生成
    使用后台返回验证码图片,验证码存到session中后端实现校验,前端只展示验证码图片。 本篇用SpringBoot Thymeleaf实现验证码生成。 创建springboot项...
    99+
    2022-11-12
  • springboot验证码生成以及验证功能举例详解
    目录1.easy-captcha工具包2添加依赖3.验证码字符类型4.字体设置5验证码图片输出6.生成并显示验证码6.1后端6.2前端7 验证码的输入验证7.1后端7.2前端总结1....
    99+
    2023-05-16
    springboot验证码生成 springboot 验证码 springboot验证码图片功能
  • 详解node-ccap模块生成captcha验证码
    准备工作如下: 这个库依赖python2.7.X和node-gyp,请先安装 1、Python 安装完之后将安装目录如“C:Python27”添加至系统环境变量PATH中。 2、node-gyp安装 全局...
    99+
    2022-06-04
    验证码 详解 模块
  • python生成随机图形验证码详解
    使用python生成随机图片验证码,需要使用pillow模块 1.安装pillow模块 pip install pillow 2.pillow模块的基本使用 1.创建图片 from PIL imp...
    99+
    2022-06-04
    验证码 详解 图形
  • 利用Python生成随机验证码详解
    目录1.先搞环境2.开始码代码3. 加干扰4. 加入更多的干扰5. 验证码 + 随机字符6. 验证码保存本地(选)最近感觉被大数据定义成机器人了,随便看个网页都跳验证码。 怎么用p...
    99+
    2022-11-13
  • 基于WPF实现验证码控件
    代码如下 一、创建CheckCode.xaml代码如下 <ResourceDictionary xmlns="http://schemas.microsoft.com/winf...
    99+
    2022-11-13
    WPF验证码控件 WPF验证码 WPF 控件
  • Vue实现图片验证码生成
    图片验证码主要用于注册,登录等提交场景中,目的是防止脚本进行批量注册、登录、灌水,相比不带图片验证的安全度有所提高,不过目前也有自动识别图片验证码的程序出现,基本都是付费识别,随之又...
    99+
    2022-11-13
  • Java实现动态验证码生成
    本文实例为大家分享了Java动态验证码生成的具体代码,供大家参考,具体内容如下 说明:今天给大家来带来一个自动生成验证码的处理方法。验证码的出现有效减少了注入灌水以及破解密码等恶意操...
    99+
    2022-11-13
  • JS实现随机生成验证码
    本文实例为大家分享了JS实现随机生成验证码的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head>...
    99+
    2022-11-12
  • python实现验证码生成显示
    from captcha.image import ImageCaptcha import numpy as np import matplotlib.pyplot as plt from PIL import Image imp...
    99+
    2023-01-31
    验证码 python
  • Android实现随机生成验证码
    本文实例为大家分享了Android验证码的随机生成代码,供大家参考,具体内容如下 Code.java package com.example.myapp; import and...
    99+
    2022-11-12
  • Java如何实现验证码生成
    这篇文章主要介绍了Java如何实现验证码生成,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。验证码大家都知道,它的作用也不用我多说了吧。如果不太清楚请参见百度百科中的解释,一般...
    99+
    2023-05-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作