精华内容
下载资源
问答
  • 本文实例讲述了C#验证码识别类。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Drawing...
  • c# 验证码识别 OCR 识别通过个人调整了下准确率非常高(之前下载的那个很垃圾)
  • C#验证码识别

    2018-03-08 14:17:06
    c# 识别验证码,完整代码,通过逐个像素扫描与模板对比,相似分值加1不像似减1
  • 通过网上的一些资料结合,用c#写的验证码识别器,里面有代码,
  • C# 验证码识别

    2016-12-06 15:34:43
    C# 验证码识别
  • C# 验证码代码

    2015-08-31 20:41:41
    完整的用C#窗体实现 登录窗体验证码的实现 单击更换验证码
  • C#验证码控件,支持所有vs版本,已经过测试 属性已详细在里面介绍了
  • C#验证码验证

    2016-06-07 14:16:15
    C#编写验证码,不区分大小写
  • 含源代码,VS2008编译通过 验证码的识别步骤: 1. 对图像进行去噪点处理 2. 得到每个验证码独立图片(分割步骤1后的图) 3. 收集每个验证码的特征码 4. 找出当前验证码在特征码集中相似度最高的,确定验证码
  • 验证码识别图像去噪声。 本程序主要用于图片处理 主要应用:通过自己整理可以用于验证码的自动识别。 功能介绍: 噪声模型 均值与中值 灰度形态 小波变换 高斯滤波 参数统计等
  • .NETCore图形验证码,包含滑动验证和图片文字点击,适合简单登录验证用。包含滑动验证和图片文字点击,适合简单登录验证用。包含滑动验证和图片文字点击,适合简单登录验证用。包含滑动验证和图片文字点击,适合简单...
  • 本文实例讲述了C#验证码识别基础方法,是非常实用的技巧。分享给大家供大家参考。具体方法分析如下: 背景 最近有朋友在搞一个东西,已经做的挺不错了,最后想再完美一点,于是乎就提议把这种验证码给K.O.了,于是乎...
  • 本文实例讲述了C#验证码的创建与使用方法。分享给大家供大家参考,具体如下: 1、C#创建验证码 ① 创建获取验证码页面(ValidateCode.aspx) <html xmlns=http://www.w3.org/1999/xhtml> <head runat=...
  • c# 验证码设置

    2020-03-30 23:43:47
    context.Response.ContentType = "image/jpeg"; Random radom = new Random(); string code = radom.Next(1000, 10000).ToString(); //随机产生四位数 //下面是生成验证码的格式 using (B...

    1.将下面代码放到ashx文件中:

     			context.Response.ContentType = "image/jpeg";
     			Random radom = new Random();
                string code = radom.Next(1000, 10000).ToString(); //随机产生四位数
                //下面是生成验证码的格式
                using (Bitmap bmp = new Bitmap(90, 25))
                {
                    using (Graphics grap = Graphics.FromImage(bmp))
                    using (Font font = new Font(FontFamily.GenericSansSerif, 15))
                    {
                        grap.DrawString(code, font, Brushes.Red, new PointF(0, 0));
                    }
                    bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);
                }
    

    2. 在引用上面文件的html页面设置一些东西

    <script type="text/javascript">
            function VeriCode() {
                var img = document.querySelector("#code");
                img.src = "VeriCode.ashx? t=" + new Date(); //实现点击 验证码就更改
            }
        </script>
    ***************************************************************************************************
     <img src="VeriCode.ashx" id="code" onclick="VeriCode()"/>  <!--onclick="VeriCode()"当点击事件发生时,调用VeriCode函数-->
    
    展开全文
  • C#验证码

    2019-02-02 16:07:03
    验证码生成 在学习以及做项目的过程中,我们有时候遇到需要验证码的情况,然后需要对它进行判断是否正确。但首先,我们就必须要生成验证码,才能够对其进行判断。 首先,这是控制层代码: //生成验证码 public ...

    验证码生成

    在学习以及做项目的过程中,我们有时候遇到需要验证码的情况,然后需要对它进行判断是否正确。但首先,我们就必须要生成验证码,才能够对其进行判断。

    首先,这是控制层代码:

    //生成验证码
    
     public ActionResult ValideCode()
            {
                //调用封装好的ValidCodeUtils里面的方法生成5位数随机字符串
                //ValidCodeUtils  这是封装好的一个类,方便调用。
                string strValideCode = FriendLoan.Common.ValidCodeUtils.GetRandomCode(3);
                //GetRandomCode(3)这里是产生验证码的数字,可以自己决定。
                //然后借用Session会话机制保存字符串
                Session["ValideCode"] = strValideCode;
                //接着调用封装好的方法把生成的随机字符串转化为一张图片
                byte[] btValideCode = FriendLoan.Common.ValidCodeUtils.CreateImage(strValideCode);
                //最后把我们生成的图片以文件形式File返回(文件内容,文件类型)
                return File(btValideCode, @"image/jpeg");
            }
    

    这是页面层代码

        
                  <div class="form-group">
                        <label class="col-sm-2 col-md-offset-1 control-label no-padding-right" for="validCode">验证码</label>
                        <div class="col-sm-8 ">
                             <div class="input-group">
                                <input type="text" name="validCode" id="validCode" class="form-control" />
                                  <div class="input-group-addon" style="padding:0"><img src="/Main/ValideCode" id="ValidateCode" /></div>
                           </div>
                     </div>
              </div>
    
          <script>
          
              //点击图片刷新验证码
            $("#ValidateCode").click(function () {
                //在浏览器有一个缓存机制,这里借用时间是为了生成不重复图片。
                $("#ValidateCode").attr("src", "/Aiyumye/Approve/ValideCode?=" + new Date());
            });///Aiyumye/Approve/ValideCode  这是链接到控制层
         </script>
    

    这样我们通过点击验证码就可以刷新验证码,实现一个简单的验证码生成。

    在这里插入图片描述

    展开全文
  • C# 验证码识别程序

    2011-12-17 10:31:14
    对某个网站的验证码做识别,识别率百分之百,可以拿这个程序举一反三,现在还有很多网站都是用这种验证码的,包括我现在上传的页面的CSDN的验证码,呵呵。。
  • c#验证码例子

    2013-04-20 09:06:50
    c#编写随机生成验证码并进行验证,一个简单的例子。
  • c# 验证码识别源代码

    2020-10-16 13:30:20
    只要你有一定的c#编程基础,只要半天时间仔细阅读这份代码,你就可以从完全不懂验证码识别的菜鸟变成一个能破解一些傻瓜验证码的高手。 希望尊重他人劳动成果,不要上传此代码到别的地方。谢谢!
  • 主要为大家详细介绍了C#实现截取验证码图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C#验证码识别源码

    2013-08-14 16:21:29
    C#验证码识别源码,非常不错的一个验证码识别代码,可供大家借鉴学习。
  • C#验证码的创建和使用

    千次阅读 2018-11-01 11:13:35
    先添加一个验证码类ValidateCode using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Web; namespace 验证码生成和使用 { ...

    先添加一个验证码类ValidateCode

    using System;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Web;
    
    namespace 验证码生成和使用
    {
        public class ValidateCode
        {
            public ValidateCode()
            {
            }
            /// <summary>
            /// 验证码的最大长度
            /// </summary>
            public int MaxLength
            {
                get { return 10; }
            }
            /// <summary>
            /// 验证码的最小长度
            /// </summary>
            public int MinLength
            {
                get { return 1; }
            }
            /// <summary>
            /// 生成验证码
            /// </summary>
            /// <param name="length">指定验证码的长度</param>
            /// <returns></returns>
            public string CreateValidateCode(int length)
            {
                int[] randMembers = new int[length];
                int[] validateNums = new int[length];
                string validateNumberStr = "";
                //生成起始序列值
                int seekSeek = unchecked((int)DateTime.Now.Ticks);
                Random seekRand = new Random(seekSeek);
                int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000);
                int[] seeks = new int[length];
                for (int i = 0; i < length; i++)
                {
                    beginSeek += 10000;
                    seeks[i] = beginSeek;
                }
                //生成随机数字
                for (int i = 0; i < length; i++)
                {
                    Random rand = new Random(seeks[i]);
                    int pownum = 1 * (int)Math.Pow(10, length);
                    randMembers[i] = rand.Next(pownum, Int32.MaxValue);
                }
                //抽取随机数字
                for (int i = 0; i < length; i++)
                {
                    string numStr = randMembers[i].ToString();
                    int numLength = numStr.Length;
                    Random rand = new Random();
                    int numPosition = rand.Next(0, numLength - 1);
                    validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1));
                }
                //生成验证码
                for (int i = 0; i < length; i++)
                {
                    validateNumberStr += validateNums[i].ToString();
                }
                return validateNumberStr;
            }
            /// <summary>
            /// 创建验证码的图片
            /// </summary>
            /// <param name="context">要输出到的page对象</param>
            /// <param name="validateNum">验证码</param>
            public void CreateValidateGraphic(string validateCode, HttpContext context)
            {
                Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 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 Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));
                    LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),
                     Color.Blue, Color.DarkRed, 1.2f, true);
                    g.DrawString(validateCode, font, brush, 3, 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);
                    //保存图片数据
                    MemoryStream stream = new MemoryStream();
                    image.Save(stream, ImageFormat.Jpeg);
                    //输出图片流
                    context.Response.Clear();
                    context.Response.ContentType = "image/jpeg";
                    context.Response.BinaryWrite(stream.ToArray());
                }
                finally
                {
                    g.Dispose();
                    image.Dispose();
                }
            }
            /// <summary>
            /// 得到验证码图片的长度
            /// </summary>
            /// <param name="validateNumLength">验证码的长度</param>
            /// <returns></returns>
            public static int GetImageWidth(int validateNumLength)
            {
                return (int)(validateNumLength * 12.0);
            }
            /// <summary>
            /// 得到验证码的高度
            /// </summary>
            /// <returns></returns>
            public static double GetImageHeight()
            {
                return 22.5;
            }
    
            /// <summary>
            /// 创建验证码的图片
            /// </summary>
            /// <param name="containsPage">要输出到的page对象</param>
            /// <param name="validateNum">验证码</param>
            public byte[] CreateValidateGraphic(string validateCode)
            {
                Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 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 Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));
                    LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),
                     Color.Blue, Color.DarkRed, 1.2f, true);
                    g.DrawString(validateCode, font, brush, 3, 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);
                    //保存图片数据
                    MemoryStream stream = new MemoryStream();
                    image.Save(stream, ImageFormat.Jpeg);
                    //输出图片流
                    return stream.ToArray();
                }
                finally
                {
                    g.Dispose();
                    image.Dispose();
                }
            }
        }
    }
    

    注意一点是,需要引用命名空间:

    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Web;------这个需要先在添加引用里面的程序集里引用到

    上面是生成验证码的类,下面是使用验证码的窗体:

    如下四个控件

    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.PictureBox pictureBox1;
    private System.Windows.Forms.Button btnLogin;
    private System.Windows.Forms.Label label1;

    窗体的代码:

    using System;
    using System.Drawing;
    using System.IO;
    using System.Windows.Forms;
    
    namespace 验证码生成和使用
    {
        public partial class frmMain : Form
        {
            ValidateCode code = new ValidateCode();//实例化生成验证码的类
            private string vcode = string.Empty;//声明存储验证码的字符串变量
            public frmMain()
            {
                InitializeComponent();
                ShowCode();//调用生成验证码的方法
            }
            //生成验证码的方法
            private void ShowCode()
            {
                vcode = code.CreateValidateCode(4);//把生成的验证码赋值给变量
                byte[] buffer = code.CreateValidateGraphic(vcode);//把字符串转成字节流
                pictureBox1.Image = ByteToImage(buffer);//把字节流转成图片显示在窗体中的pictureBox1控件
            }
            /// <summary>
            /// 字节流转成图片
            /// </summary>
            /// <param name="buffer">需要转换的字节流</param>
            /// <returns>返回生成图片</returns>
            private Image ByteToImage(byte[] buffer)
            {
                MemoryStream ms = new MemoryStream(buffer);
                return Image.FromStream(ms, true);
            }
            //登录按钮验证输入的验证码是否正确
            private void btnLogin_Click(object sender, EventArgs e)
            {
                if (textBox1.Text.Trim() != vcode)
                {
                    this.Text = "验证码错误";
                    textBox1.Focus();//输入错误,输入框获取焦点
                }
                else
                {
                    this.Text = "验证码正确";
                }
            }
            //看不清换一张,重新调用一下生成验证码的方法
            private void label1_Click(object sender, EventArgs e)
            {
                ShowCode();
            }
        }
    }
    

    每步都有注释,主要点在于字节流转换成图片的方法

    展开全文
  • C#验证码的实现

    2020-04-11 23:00:29
    验证码由四位随机数字或者字母组成,此时就要考虑怎么获取随机数 (2).各个字符之间怎么进行连接 (3).当点击更换时会重新生成四位随机数 (4).四位字符的显示 二.代码的实现 (1).引入伪随机数生成器 Random,生成随机数 ...

    一.编程思想

    (1).验证码由四位随机数字或者字母组成,此时就要考虑怎么获取随机数
    (2).各个字符之间怎么进行连接
    (3).当点击更换时会重新生成四位随机数
    (4).四位字符的显示

    二.代码的实现

    (1).引入伪随机数生成器 Random,生成随机数
    实例化Random: Random p = new Random();//表示伪随机数生成器
     Random p = new Random();//表示伪随机数生成器
    (2).储存字符串
    当生成字符串时,我们需要对它进行存储,我们声明一个string变量对它进行存储
    //验证码是随机的字符串
                string zf = "";
    (3).四位验证码字符的生成:
    int type = p.Next(1,3);Next返回指定范围内的整数,包小不包大;
    zf+=:对四个字符进行连接;
    label1.Text = zf; :label中进行显示字符串;
    label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255)); :实现整体颜色随机;
    字符数据类型的转换:(char)p.Next(65,91)将int类型转化为char类型; p.Next(0,10).ToString();:将int类型转化为string类型;
     for (int i= 0;i<4;i++)
                {
                    //类型首先随机四种  0.大写  1.小写  2.数字
                    int type = p.Next(1,3);//返回指定范围内的整数,包小不包大
                    if (type==0)
                    {
                        zf+=((char)p.Next(97, 123)).ToString();
                        this.BackColor = Color.Green;
                    }
                    if (type==1)
                    {
                        zf+=((char)p.Next(65,91)).ToString();
                    }
                    if (type==2)
                    {
                        zf+=p.Next(0,10).ToString();
                    }
                    label1.Text = zf;
                }
                label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255));
            }
    (4).整体代码的实现
    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;
    using System.Windows.Forms;
    namespace 验证码
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                Text = "验证码";
                this.BackColor = Color.Green;
                label1.BackColor = Color.White;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                //验证码是随机的字符串
                string zf = "";
                //也就是随机函数对象
                Random p = new Random();//表示伪随机数生成器
                for (int i= 0;i<4;i++)
                {
                    //类型首先随机四种  0.大写  1.小写  2.数字
                    int type = p.Next(1,3);//返回指定范围内的整数,包小不包大
                    if (type==0)
                    {
                        zf+=((char)p.Next(97, 123)).ToString();
                        this.BackColor = Color.Green;
                    }
                    if (type==1)
                    {
                        zf+=((char)p.Next(65,91)).ToString();
                    }
                    if (type==2)
                    {
                        zf+=p.Next(0,10).ToString();
                    }
                    label1.Text = zf;
                }
                label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255));
            }
        }
    }
    (5).效果展示图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 手写C#验证码

    2013-12-10 11:16:51
    C#验证码 简单实用 C#验证码 简单实用
  • c#验证码自动读取程序,使用Aspose.OCR是一款字符识别组件,它使得开发人员可以添加OCR功能到他们的ASP.NET Web应用程序、web服务和windows应用程序中。
  • 主要介绍了C#实现的一款比较美观的验证码,以完整实例形式分析了C#生成验证码与前端调用验证码的实现技巧,需要的朋友可以参考下
  • 最近做一个小玩意需要识别验证码,之前从来没有接触过识别验证码这块,这可难倒了我。所以,在网上搜索如何识别验证码,许多前辈写的博文教会了我。怕以后又忘记了,故此写篇随笔记录。 我要识别的验证码是一种非常...
  • c#验证码生成器.zip

    2021-03-22 13:24:38
    验证码生成器 一直想写验证码识别,但苦于没有足够的训练数据。 之前数据样本都是让我同学手动帮填的,效率极低而且还有错误率,后来想起找源码不是更方便吗。 便通过反编译zjdx.dll写下了批量生成验证码的软件。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,734
精华内容 4,693
关键字:

c#验证码

c# 订阅