C#验证码的生成
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#验证码的生成的更多相关文章
- ImageUtil(验证码数据生成工具类)
登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt ...
- 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器
php 图片 中文验证码 <img src="verify_image.php" alt="点此刷新验证码" name="verify_code ...
- 验证码图片生成工具类——Captcha.java
验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载 Captcha.java) import java. ...
- MVC中验证码的生成
在项目中验证码的生成通常是需要页面无刷新的,所以验证码图片实际是跟在某个input后面的img,通过控制该img来控制验证码显示的位置,例如: <div> <input id=&qu ...
- Android开发中验证码的生成
近期在做电商金融类的项目,验证码的生成方法不可缺少.先学习了一种.经过測试好用.从别处学习的代码,稍修改了一下可选择是否支持识别大写和小写.直接上代码. import android.app.Acti ...
- python随机图片验证码的生成
Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Im ...
- 深度学习之卷积神经网络(CNN)的应用-验证码的生成与识别
验证码的生成与识别 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10755361.html 目录 1.验证码的制 ...
- java生成随机六位数的验证码&随机生成十位数ValidCode码,用于邮件的验证&检查是不是符合为合法的中国的手机号码
package com.demo.test1; import java.security.NoSuchAlgorithmException; import java.security.SecureRa ...
- Django之动态验证码的生成
kind.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Django之验证码的生成和使用
1.基于PIL生成一个带验证码的图片和验证码,生成验证码图片需要Monaco.ttf字体,可按自己要求更改check_code中的字体和字体文件位置,如下图 #!/usr/bin/env python ...
随机推荐
- 怎样获取Windows平台下SQL server性能计数器值
转载自工作伙伴Garrett, Helen "SQL Server Performance Counter captures" Capturing Windows Performa ...
- MarkDown简要语法
1.标题 2.列表 3. 引用 4.图片与连接 实现链接有两种方式,分别是内联方式和引用方式 内联方式 [This baidu link](http://www.baidu.com)效果如:This ...
- CAD2008 启动慢 卡住
CAD2008打开很慢解决CAD2008打开很慢的方法: 第一个:1.[开始]―[控制面板]. 2.选择[网络和Internet连接]选项,再点[Internet选项]. 3.在Internet属性对 ...
- PowerShell脚本自动设置安卓手机wifi代理
在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试.最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改 ...
- Android 大图片预览ViewPager
项目gitHub地址: https://github.com/bm-x/PhotoView 个人项目gitHub地址: https://github.com/anan03/ananwork/tre ...
- linux screen 命令详解
一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...
- vue.js存储--localStorage
//list例子:绑定从localStorage中读取的数据,动态添加list并监听将数据变化存储在localStorage中,绑定点击事件改变样式, 页面 data数据: input_name:'' ...
- 关于IONIC 报错 XX is not a function
刚开始 做一个项目,总是报错"XX is not a function" 最后发现 原因 , 原来是 服务的 注入位置 有问题. angular.module(" ...
- 关于APP程序员泡沫经济
这些年,移动互联网非常火,火到掀起学习iOS.安卓以及H5的热潮.有人将这些新技术作为自己的实力补充,增加竞争力:更多的人将它们作为主业,专职做移动开发.但是,即便有移动开发人员不断涌入,对整个行业来 ...
- em详解
最近详细阅读了一下CSS2.2文档,对em单位有了深刻的认识 原文在此:The 'em' unit is equal to the computed value of the 'font-size' ...