HTML

<ul>
   <li>验证码:</li>
   <li>
    <img src="/Login/GetValidateCode?ID=1" id="imgCode" alt="单击刷新" onclick="ClickChangeCode()"  />
    <a href="javascript:void(0)" onclick="ClickChangeCode();return false;">看不清</a>
   </li>
</ul>

JS

<script type="text/javascript">
    function ClickChangeCode() {
        var code = $("#imgCode").attr("src");
        $("#imgCode").attr("src", code + "1");
    }
</script>

C#

public class ValidateCode
{
    public int MaxLength
    {
        ; }
    }
    public int MinLength
    {
        ; }
    }
    //生成验证码
    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);
        , Int32.MaxValue - length*);
        int[] seeks = new int[length];
        ; i < length; i++)
        {
            beginSeek += ;
            seeks[i] = beginSeek;
        }
        //生成随机数字
        ; i < length; i++)
        {
            Random rand = new Random(seeks[i]);
            *(, length);
            randMembers[i] = rand.Next(pownum, Int32.MaxValue);
        }
        //抽取随机数字
        ; i < length; i++)
        {
            string numStr = randMembers[i].ToString();
            int numLength = numStr.Length;
            Random rand = new Random();
            , numLength - );
            validateNums[i] = Int32.Parse(numStr.Substring(numPosition, ));
        }
        //生成验证码
        ; i < length; i++)
        {
            validateNumberStr += validateNums[i].ToString();
        }
        return validateNumberStr;
    }
    //生成验证码的图片
    public byte[] CreateValidateGraphic(string validateCode)
    {
        Bitmap image = );
        Graphics g = Graphics.FromImage(image);
        try
        {
            //生成随机生成器
            Random random = new Random();
            //清空图片背景色
            g.Clear(Color.White);
            //画图片的干扰线
            ; i < ; 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 = , (FontStyle.Bold | FontStyle.Italic));
            LinearGradientBrush brush = , , image.Width, image.Height),                          Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(validateCode, font, brush, , );
            //画图片的前景干扰点
            ; i < ; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);
                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }
            //画图片的边框线
            g.DrawRectangle(, , image.Width - , image.Height - );
            //保存图片数据
            MemoryStream stream = new MemoryStream();
            image.Save(stream, ImageFormat.Jpeg);
            //输出图片流
            return stream.ToArray();
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }
    //得到验证码图片的长度
    public static int GetImageWidth(int validateNumLength)
    {
        return (int) (validateNumLength*12.0);
    }
    // 得到验证码的高度
    public static double GetImageHeight()
    {
        return 22.5;
    }

}

调用

public ActionResult CheckCode()
{
    //首先实例化验证码的类
    ValidateCode validateCode = new ValidateCode();
    //生成验证码指定的长度
    );
    //将验证码赋值给Session变量
    Session["ValidateCode"] = code;
    //创建验证码的图片
    byte[] bytes = validateCode.CreateValidateGraphic(code);
    //最后将验证码返回
    return File(bytes, @"image/jpeg");
}

C#验证码的生成的更多相关文章

  1. ImageUtil(验证码数据生成工具类)

    登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt ...

  2. 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器

    php 图片 中文验证码 <img src="verify_image.php" alt="点此刷新验证码" name="verify_code ...

  3. 验证码图片生成工具类——Captcha.java

    验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载  Captcha.java) import java. ...

  4. MVC中验证码的生成

    在项目中验证码的生成通常是需要页面无刷新的,所以验证码图片实际是跟在某个input后面的img,通过控制该img来控制验证码显示的位置,例如: <div> <input id=&qu ...

  5. Android开发中验证码的生成

    近期在做电商金融类的项目,验证码的生成方法不可缺少.先学习了一种.经过測试好用.从别处学习的代码,稍修改了一下可选择是否支持识别大写和小写.直接上代码. import android.app.Acti ...

  6. python随机图片验证码的生成

    Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Im ...

  7. 深度学习之卷积神经网络(CNN)的应用-验证码的生成与识别

    验证码的生成与识别 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10755361.html 目录 1.验证码的制 ...

  8. java生成随机六位数的验证码&随机生成十位数ValidCode码,用于邮件的验证&检查是不是符合为合法的中国的手机号码

    package com.demo.test1; import java.security.NoSuchAlgorithmException; import java.security.SecureRa ...

  9. Django之动态验证码的生成

    kind.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  10. Django之验证码的生成和使用

    1.基于PIL生成一个带验证码的图片和验证码,生成验证码图片需要Monaco.ttf字体,可按自己要求更改check_code中的字体和字体文件位置,如下图 #!/usr/bin/env python ...

随机推荐

  1. 怎样获取Windows平台下SQL server性能计数器值

    转载自工作伙伴Garrett, Helen "SQL Server Performance Counter captures" Capturing Windows Performa ...

  2. MarkDown简要语法

    1.标题 2.列表 3. 引用 4.图片与连接 实现链接有两种方式,分别是内联方式和引用方式 内联方式 [This baidu link](http://www.baidu.com)效果如:This ...

  3. CAD2008 启动慢 卡住

    CAD2008打开很慢解决CAD2008打开很慢的方法: 第一个:1.[开始]―[控制面板]. 2.选择[网络和Internet连接]选项,再点[Internet选项]. 3.在Internet属性对 ...

  4. PowerShell脚本自动设置安卓手机wifi代理

    在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试.最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改 ...

  5. Android 大图片预览ViewPager

    项目gitHub地址:  https://github.com/bm-x/PhotoView 个人项目gitHub地址:  https://github.com/anan03/ananwork/tre ...

  6. linux screen 命令详解

    一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...

  7. vue.js存储--localStorage

    //list例子:绑定从localStorage中读取的数据,动态添加list并监听将数据变化存储在localStorage中,绑定点击事件改变样式, 页面 data数据: input_name:'' ...

  8. 关于IONIC 报错 XX is not a function

    刚开始 做一个项目,总是报错"XX is not  a function"   最后发现 原因 ,   原来是 服务的 注入位置 有问题. angular.module(" ...

  9. 关于APP程序员泡沫经济

    这些年,移动互联网非常火,火到掀起学习iOS.安卓以及H5的热潮.有人将这些新技术作为自己的实力补充,增加竞争力:更多的人将它们作为主业,专职做移动开发.但是,即便有移动开发人员不断涌入,对整个行业来 ...

  10. em详解

    最近详细阅读了一下CSS2.2文档,对em单位有了深刻的认识 原文在此:The 'em' unit is equal to the computed value of the 'font-size'  ...