网站登录总是会用到验证码,生成验证码对于C#来说很简单。因为有专门封装好的GDI+类可以直接调用使用具体代码如下

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing; namespace Ajax.验证码
{
public partial class Yanma : System.Web.UI.Page
{
private int CodeNum = ;
private string codeNum = "";
protected void Page_Load(object sender, EventArgs e)
{
VeriflcationCode();
HuaCode(codeNum);
} private void VeriflcationCode()
{
//生成验证码
string AllChar = "1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z";
string[] StrChar = AllChar.Split(',');
Random rd = new Random();
string Codes = "";
for (int i = ; i < CodeNum; i++)
{
Codes += StrChar[rd.Next(, )];
}
codeNum = Codes;
Session["VerCode"] = Codes;
} private void HuaCode(string Codes)
{
int iwidth = (int)(Codes.Length * );//定义画布的宽
System.Drawing.Bitmap images = new System.Drawing.Bitmap(iwidth, );//声明一个画布类,初始化图片的宽和高 Graphics g = Graphics.FromImage(images);
Font f = new Font("Arial", );//定义文字类型
Brush b = new System.Drawing.SolidBrush(Color.Black);//文字颜色 黑色
Brush r = new System.Drawing.SolidBrush(Color.FromArgb(, , ));//文字颜色
g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色 char[] ch = Codes.ToCharArray();
for (int i = ; i < ch.Length; i++)
{
if (ch[i] >= '' && ch[i] <= '')
{
//数字用红色显示
g.DrawString(ch[i].ToString(), f, r, + (i * ), );//将文字画出 文字、字体类型、字体颜色、字体间距、字体于顶部间距
}
else
{ //字母用黑色显示
g.DrawString(ch[i].ToString(), f, b, + (i * ), );
}
} //for循环用来生成一些随机的水平线
Pen blackPen = new Pen(Color.Black, );
Random rand = new Random();
for (int i = ; i < ; i++)
{
int y = rand.Next(images.Height);
g.DrawLine(blackPen, , y, images.Width, y);
} System.IO.MemoryStream ms = new System.IO.MemoryStream();
images.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//history back 不重复
Response.Cache.SetNoStore();//这一句
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
images.Dispose();
}

效果为:

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

  1. java生成简单验证码图片

    概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在ja ...

  2. js简单验证码的生成和验证

    如何用js生成简单验证码,并验证是否正确的方法 1.html页面如下 <div> <table border="0" cellspacing="5&qu ...

  3. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  4. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  5. 菜鸟学Java(六)——简单验证码生成(Java版)

    验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...

  6. php生成动态验证码 加减算法验证码 简单验证码

    预览效果: <?php /** *ImageCode 生成包含验证码的GIF图片的函数 *@param $string 字符串 *@param $width 宽度 *@param $height ...

  7. JavaScript生成简单数字验证码

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  8. 用imagemagick和tesseract-ocr破解简单验证码

    用imagemagick和tesseract-ocr破解简单验证码 Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊. 准备工作: 1.安装tesseract-ocr sudo apt ...

  9. 使用Pillow库 创建简单验证码

    使用Pillow生成简单的验证码 本想做成字体各自按随机角度倾斜, 但没有在Pillow中找到相关的方法 import randomfrom PIL import Image, ImageDraw, ...

随机推荐

  1. [经典算法] 字符串搜索Boyer-Moore

    题目说明: 今日的一些高阶程式语言对于字串的处理支援越来越强大(例如Java.C#.Perl等),不过字串搜寻本身仍是个值得探讨的课题,在这边以Boyer- Moore法来说明如何进行字串说明,这个方 ...

  2. Android Chronometer的正常暂停和继续

    最近做了个小实验--一个小的计数秒表,实现开始计时,暂停计时,重置的功能.界面如下

  3. unity与Android交互

    unity打包成安卓工程中的JAVA代码 public class UnityPlayerActivity extends Activity { //Unity中调用此函数 public int Ma ...

  4. 常用 CSS 中文字体 Unicode 编码表

    为什么要在CSS中设置字体用字体 Unicode 编码 在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误. 为此,在 CSS直接使 ...

  5. Convolution and Deconvolution

    1.Introduction 2.Convolution 3.Deconvolution 4.Summary

  6. Tensorflow之安装

    1.fellow the instruction of https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/ge ...

  7. Table of Contents - JMS

    JMS Specification v1.1 JMS 基本概念 Message QueueBrowser 消息选择器 消息确认 ConnectionMetaData ExceptionListener ...

  8. 【转载】MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用

    http://blog.csdn.net/xukai871105/article/details/39252653 0 前言     MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联 ...

  9. dedecms5.7文章实现阅读全文功能二次开发

    阅读全文功能其实在很多的流行站点都有的,比如网易,新浪等,随着文章内容的增加,当一个页面有多个分页的时候,就会显示出这个“在本页阅读全文”的链接,点击这个链接之后,出现的,将是这篇文章以没有分页出现的 ...

  10. 命令行启动tomcat,怎么配置

    进和你tomcat的安装目录进入里面bin目录下列可以直接在cmd中运行(要进入tomcat的bin目录),也可直接双击startup.bat 启动tomcatshutdown.bat 关闭tomca ...