C#生成随机验证码例子

C#做出验证码的例子 在浏览网页的时候,验证码是非常常见的一个东西。验证码我们不陌生,在网站注册或发表言论,甚至是买火车票的时候都要求输入正确的验证码,当我们输入的验证码不正确的时候,就会收到提示,验证码不对,然后前面的操作就失效了。由此可以看出验证码的一个作用就是验证当前操作是否有效。而且通过对比发现,验证码不光是数字式的,还有文字和图片的样式,如下图:              在.NET中可以通过C#来编写验 阅读详情

C#生成随机验证码例子:

 前端:

1  <tr>
2           <td width="24%" height="26" align="center" valign="top">
3               验证码:</td>
4           <td valign="top" width="37%" align="left">
5              <input type="text" name="txtCode" id="txtvalidateCode"/><a href="javascript:void(0)" id="valiateCode"><img src="/ashx/ValidateCode.ashx?id=1" id="imgCode" /></a><span style="font-size:14px;color:red " id="userCodeMsg"></span></td>          
6         </tr>


给验证码图片绑定单击事件:

 $("#valiateCode").click(function () {
    $("#imgCode").attr("src",$("#imgCode").attr("src")+1);
 });


后台生成验证码图片代码:

ValidateCode.ashx

<%@ WebHandler Language="C#" Class="ValidateCode" %>

using System;
using System.Web;
using System.Drawing;
using System.Web.SessionState;

public class ValidateCode : IHttpHandler, IRequiresSessionState
{
    HttpContext context;
    public void ProcessRequest (HttpContext context1) {
        this.context = context1;
        CreateCheckCodeImage(GenerateCheckCode());
    }

    private string GenerateCheckCode()
    {
        int number;
        char code;
        string checkCode = String.Empty;

        System.Random random = new Random();

        for (int i = 0; i < 5; i++)
        {
            number = random.Next();

            if (number % 2 == 0)
                code = (char)('0' + (char)(number % 10));
            else
                code = (char)('0' + (char)(number % 10));
            //code = (char)('A' + (char)(number % 26));

            checkCode += code.ToString();
        }

        //Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
        context.Session.Add("vCode", 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);
            context.Response.ClearContent();
            context.Response.ContentType = "image/Gif";
            context.Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }
    
    public bool IsReusable {
        get {
            return false;
        }
    }

}


验证码效果:

C#实现随机验证码 Random sj = new Random();//创建随机数 private void button1_Click(object sender, EventArgs e) { //定义一个字符串来接收验证码 string sjs = ""; //定义多种字体的数组 Str... 阅读详情

相关推荐

C#验证码生成与验证详解:代码实现、注释解析与实战应用

在C#(.NET)环境中,验证码是一种常见的安全机制,用于防止自动化脚本或机器人滥用网站功能,如登录、注册、评论等。验证码通常由一系列随机生成的字符组成,这些字符经过变形、扭曲或添加干扰线,使得人眼能够识别而机器难以自动解析。

java专栏 1403

C#验证码生成

C#验证码生成 前言:验证码的重要性,验证码作为一个标识,通过判断他的正确性决定要不要用户去执行相关的操作。验证码的生成方法也就那几种,这里主要讲一些比较简单的生成方法。 思路: 1、创建一个ValidCodeUtils静态类存放下面两个方法 2、生成验证码主要是通过创建一个随机生成数跟字母 3、给验证码添加一些干扰,也就是清晰度的问题,看起来迷糊迷糊就行 4、调用静态类的方法生成图片返回给视图img 一、控制器生成方法 1、创建静态类ValidCodeUtils 2、生成随机数 Static 静态的方法

我要记录学习博客 1997

生成随机验证码C#例子

37 //添加Session值。58//画图片的背景噪音线。73//画图片的前景噪音点。52//生成随机生成器。55//清空图片背景色。82//画图片的边框线。

shengyin714959的博客 381

C#生成自定义登录验证码(微信公众号验证码,邮箱验证码等)

在项目上线使用时,网络对外警察后受到攻击,特别是尝试各种密码组合对用户名密码登录的暴力破解,需要增加验证码来增加用户信息的安全性。validateCode类。

书中自有妍如玉的博客 2574

C#生成并验证验证码

C#制作以数字、英文字母以及噪音线组成的验证码,并提供验证码验证功能

基于DE2-115红外解码实验

基于DE2-115红外解码实验   一、   功能描述 在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型, 这样就要求信号按一定的编码传送,编码则会由编码芯片或电路完成。对应于编码芯片通常会有相配对的解码芯片或包含解码模块的应用芯片。在实际的产品设计或业余电子制作中,编码芯片并一定能完成我们要求的功能,这时我们就需要了解所使用的编码芯片到底是如何编码的。只有知道编码方式,我...

乘风的博客 2516

C#实现数字验证码

使用C#生成一个运行在ASP.NET Core API的验证码,前端可以用网页或客户端接入

绿龙术士的专栏 2024

Simulink封装与库的建立

第二栏设置标签,第三栏是对应变量名,即是第一张图中的常量名。1.先将输入与常量模块相连接并生成子系统。按照如图所示添加修改,最后的效果如下图。封装子系统搭建测试环境。

lensyu1994的博客 1743

程序人生丨三种语言实现—用户登录界面随机验证码,源代码分享!

以前用手机登录不要验证码,现在登录老要验证码,把人烦死!那么为什么每次登录都有烦人的验证码?其实这里涉及到网络完全问题! 一、应用场景 很多伙伴应该都知道: 防止黑客通过接口调用攻击系统,每次登录系统要输入验证码就防止机器访问。 做限流处理,防止同一时间产生大量用户的涌入,防止系统崩溃。 验证码的种类 传统输入式验证码: 用户输入图片中的字母、数字、汉字等进行验证。简单易操作,人机交互性较好。但安全系数低,容易被攻击。 输入式的图形验证码: 有精美图案,识别文本也清晰可认,专注于广告。一种

致力于C语言C++知识分享! 911

【电磁场与电磁波课程设计】基于HFSS的双频微带天线仿真及设计

第五代移动通信技术(5G)的商用已经近在眼前,作为移动通信中最为重要的功能组件,面向5G通信应用的手机天线与基站天线的技术研究与设计成为近年来的热点。随着移动通信中“跳频”“扩频”等通信技术发展,为了满足与多个终端的通信要求,实现多系统共用和收发共用等功能,这就要求天线在不同频段下工作。根据国家工信部的最新规定,5G移动通信的中频段被划定在3.3 GHz-3.5 GHz及4.8 GHz-5.0 GH,面向5G移动通信的天线应具有高增益、小型化、宽频段及高隔离度等技术特征,以满足5G通信的高传输速率、波束智能

weixin_44450575的博客 1万+

植物GO注释

本文主要是对没有GO term库的植物进行注释。 1、选用AgriGo 进行注释,在agriGO中点击species后,查看与你目标物种相近的物种作为库 2、比如我以甜菜为例 为了找到和GO term对应的ID,先找到PLAZA,进入网站https://bioinformatics.psb.ugent.be/plaza/versions/plaza_v3_di...

weixin_30300225的博客 2229

c#生成随机彩色验证码例子

一个简单的例子实现根据验证码判断登陆。 登陆页: &lt;table&gt; &lt;tr&gt; &lt;td style="text-align: right; height: 40px; width: 100px;"&gt; &lt;asp:TextBox ID="txtCheck...

weixin_33994429的博客 160

逆变器专题(3)-锁相环-PLL

锁相环作为并网逆变器的第一道门户,其锁相的精度将直接影响逆变器是否并网成功,若锁相精度较差,则会直接导致系统的功率因数下降,产生无功等等。在有关文献中指出,提高PLL带宽可以准确且快速进行锁相,而当电网电压含有谐波时,可适当降低带宽抵制谐波的干扰。成为变化量,而如果两者旋转速度达到一致时,所在的交轴分量。ki很大,即带宽很大时,稳定裕度不够,锁相环锁不住。为交流量,当频率锁定而相位没有锁定时,即。,即控制环前馈,可实现将锁相速度的加快。控为0,则可实现系统完美锁相。mod,取余,可减少存储空间。

cyc19980105的博客 6185

AHB5 CSW寄存器深度解析:HPROT配置与Keil调试实战

在嵌入式系统开发中,AMBA AHB5总线协议是连接高性能主设备与内存外设的核心。CSW寄存器作为传输控制字,定义了每次总线访问的属性,其中HPROT字段决定了缓存、缓冲、特权等关键行为。正确配置HPROT可避免总线挂死、数据不一致等严重问题,尤其在外设访问和DMA传输场景中至关重要。通过Keil调试工具观察CSW值,能快速定位配置错误,提升系统稳定性。本文深入剖析CSW寄存器各字段,结合实战案例分享调试技巧。

weixin_34259232的博客 182

【华为OD机考真题】- 构成的正方形数量(B卷-100分)(Java版)

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新

**My Coding Family** 1349

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

python-ipopt是一种基于Python语言的求解非线性最优化问题的软件包。它使用了Interior Point Optimizer(IPOPT)算法来求解最优化问题。这段代码使用python-ipopt求解了一个无约束的非线性最小化问题,其目标函数为(x[0] - 1) ** 2 + (x[1] - 2) ** 2,求解结果为x_opt。求解线性规划问题、二次规划问题、二次范数最小化问题等类型的最优化问题。对于给定的最优化问题,可以设置不同的求解参数来控制求解的精度和效率。

源代码杀手的博客 2146

C#利用GDI画图源码

C#利用GDI画图源码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; ...

-_^汪洸*的博客 643

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C#使用GDI+实现生成验证码

这个程序的主要功能是生成一个包含随机字符和干扰线的验证码图像,并允许用户输入验证码进行验证。它使用了Graphics类来绘制图像,并在用户操作(如点击图片或验证按钮)时响应事件。

2301_79849777的博客 1805

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C#随机生成验证码图

在书上学到绘图验证码示例,记录一下 //生成验证码 public string CheckCode() { int number; char code; string checkCode = String.Empty;//声明变量存储随机生成的4位英文或数字 Random random = new Random(); //生成随机数 for(int

Y1172215784的博客 499

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C#产生随机验证码

一、先看一下实现的效果: 二、具体实现 #region 声明变量 public string yanzhengma = ""; bool bolStar = true; Panel pyanzhengma = new Panel(); #endregion private void FRM_de...

mrlal 13万+
上一篇: C#使用ListView更新数据出现闪烁解决办法
下一篇: C# 队列(Queue)和 堆栈(Stack)
JiYF
博客等级 码龄11年 356粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值