asp.net 简易生成注册码(数字+大小写字母)

如果有哪里看不懂的,请留言哦

生成随机码类:SigowayRandom.cs 


代码如下:

using System;
namespace RongYi.Model.Common
{
/// <summary>
/// SigowayRandom 的摘要说明
/// </summary>
public class SigowayRandom
{
#region 获取校验码

/// <summary>
/// 获取校验码
/// </summary>
/// <returns>校验码字符数组</returns>
public static string[] GetCheckCode()
{
string[] strCheckCode = new string[4];

// 已系统时间毫秒为随机种子
int nSeed = Convert.ToInt16(DateTime.Now.Millisecond);
Random random = new Random(nSeed);

// 产生0-9随机数
strCheckCode[0] = Convert.ToString(random.Next(1, 10));
// 产生a-z、A-Z随机字母
strCheckCode[1] = SigowayRandom.GetLetter(random);
strCheckCode[2] = Convert.ToString(random.Next(1, 10));
strCheckCode[3] = SigowayRandom.GetLetter(random);

// 返回校验码
return strCheckCode;
}

#endregion

#region 获取字母,区分大小写

/// <summary>
/// 获取字母,区分大小写
/// </summary>
/// <returns>大小写字母</returns>
private static string GetLetter(Random random)
{
// 随机数
int nChar = random.Next(65, 122);

// 非字母ASCII段
if (nChar >= 91 && nChar <= 96)
{
nChar -= 6;
}

return Convert.ToString((char)nChar);
}

#endregion
}
}

绘制校验码类:SigowayDraw.cs


代码如下:

using System.Drawing;
using System.Drawing.Imaging;
using System.Web;

namespace RongYi.Model.Common
{
/// <summary>
/// SigowayDraw 的摘要说明
/// </summary>
public class SigowayDraw
{
#region 构造方法

/// <summary>
/// 构造方法
/// </summary>
public SigowayDraw() { }

#endregion

#region 画校验码

/// <summary>
/// 画校验码
/// </summary>
/// <returns>校验码</returns>
public string DrawString()
{
// 设置字体
Font drawFont = new Font("Arial", 10);
// 创建位图元素
Bitmap objBitmap = new Bitmap(50, 20);
// 创建画图对象
Graphics objGraphics = Graphics.FromImage(objBitmap);
// 设置画布背景色
objGraphics.Clear(Color.White);
// 获取随机字符串
string[] strDrawString = SigowayRandom.GetCheckCode();

// 画字符串
objGraphics.DrawString(strDrawString[0], drawFont, new SolidBrush(Color.Purple), 1, 2);
objGraphics.DrawString(strDrawString[1], drawFont, new SolidBrush(Color.Green), 12, 2);
objGraphics.DrawString(strDrawString[2], drawFont, new SolidBrush(Color.Red), 24, 2);
objGraphics.DrawString(strDrawString[3], drawFont, new SolidBrush(Color.SteelBlue), 35, 2);

// 画干扰线
objGraphics.DrawLine(Pens.Silver, 5, 10, 40, 3);
objGraphics.DrawLine(Pens.Gray, 10, 5, 45, 15);
objGraphics.DrawLine(Pens.HotPink, 15, 20, 30, 10);
objGraphics.DrawLine(Pens.LightPink, 10, 15, 35, 20);

// 把图像画到位图对象中
objGraphics.DrawImage(objBitmap, 0, 0);

// 设置保存图片路径及名字
string strFile = HttpRuntime.AppDomainAppPath.ToString() + "/Resource/img/CheckCode.gif";

// 输出文件
objBitmap.Save(strFile, ImageFormat.Gif);

// 连接校验码字符串
string strCheckCode = string.Empty;
foreach (string strTemp in strDrawString)
{
strCheckCode += strTemp;
}

// 返回校验码
return strCheckCode;
}

#endregion
}
}

(0)

相关推荐

  • javascript生成大小写字母

    主要用到 str.charCodeAt()和 String.fromCharCode()方法 -->使用 charCodeAt() 来获得字符串中某个具体字符的 Unicode 编码. -->fromCharCode() 可接受一个(或多个)指定的 Unicode 值,然后返回对应的字符串. //生成大写字母 A的Unicode值为65 function generateBig_1(){ var str = []; for(var i=65;i<91;i++){ str.push(Str

  • Java 随机生成验证码(支持大小写字母、数字、随机字体)的实例

    代码如下所示: 复制代码 代码如下: package com.hoo.util; import java.awt.Color;  import java.awt.Font;  import java.awt.Graphics;  import java.awt.image.BufferedImage;  import java.util.Random; import javax.imageio.ImageIO;  import javax.servlet.http.HttpServletRequ

  • ASP生成随机字符串(数字+大小写字母)的代码

    <% 'ASP生成随机字符串(数字+大小写字母)练习 '阿会楠练习,为我所用,非我所想  Function randKey(obj)  Dim char_array(80)  Dim temp  For i = 0 To 9    char_array(i) = Cstr(i)  Next  For i = 10 To 35   char_array(i) = Chr(i + 55)  Next  For i = 36 To 61   char_array(i) = Chr(i + 61)  N

  • javascript生成随机大小写字母的方法

    复制代码 代码如下: /** * 返回一个随机的小写字母 */ function getLowerCharacter(){ return getCharacter("lower");; } /** * 返回一个随机的大写字母 */ function getUpperCharacter(){ return getCharacter("upper");; } /** * 返回一个字母 */ function getCharacter(flag){ var charact

  • js随机生成26个大小写字母

    首先为大家介绍js生成26个大小写字母,主要用到 str.charCodeAt()和 String.fromCharCode()方法 1.使用 charCodeAt()来获得字符串中某个具体字符的 Unicode 编码. 2.fromCharCode()可接受一个(或多个)指定的 Unicode 值,然后返回对应的字符串. //生成大写字母 A的Unicode值为65 function generateBig_1(){ var str = []; for(var i=65;i<91;i++){

  • asp.net 简易生成注册码(数字+大小写字母)

    如果有哪里看不懂的,请留言哦 生成随机码类:SigowayRandom.cs  复制代码 代码如下: using System; namespace RongYi.Model.Common { /// <summary> /// SigowayRandom 的摘要说明 /// </summary> public class SigowayRandom { #region 获取校验码 /// <summary> /// 获取校验码 /// </summary>

  • Asp.NET 随机码生成基类(随机字母,随机数字,随机字母+数字)

    复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

  • PHP随机字符串生成代码(包括大小写字母)

    第一种:利用字符串函数操作 复制代码 代码如下: <?php function createRandomStr($length){ $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';//62个字符 $strlen = 62; while($length > $strlen){ $str .= $str; $strlen += 62; } $str = str_shuffle($str); return

  • python实现生成字符串大小写字母和数字的各种组合

    1 输出大写字母.小写字母.大小写字母.数字.大小写字母和数字 1.1输出小写:找到小写a(97)到z(122)的的ASCII码,然后转义为字母 lower = "" for i in range(97,123):     lower += chr(i) print('%s' % lower) 1.2输出大写:找到大写A(65)到Z(90)的的ASCII码,然后转义为字母 upper="" for i in range(65,91):     upper+=chr(

  • python随机生成大小写字母数字混合密码(仅20行代码)

    用简单的方法生成随机性较大的密码 仅用20行代码随机生成密码 核心思路:利用random模块 random模块随机生成数字,大小写字母,循环次数 while循环+随机生成的循环次数-->随机plus++ 大写字母ASKII码在65-90之间 小写字母Askll码在97-122之间 最终效果: x个大写字母+y个数字+z个小写字母(x,y,z均随机) 随机性相较于以往单调的 小写+数字+大写+小写+数字+大写- 循环有所提升 import random print("随机数生成") time

  • asp实现生成由数字,大写字母,小写字母指定位数的随机数

    <% '****************************** '函数:gen_key(digits) '参数:digits----要生成随机数的位数 '作者:阿里西西 '日期:2007/7/13 '描述:生成由数字,大写字母,小写字母指定位数的随机数:返回值:要生成的指定倍数的随机数 '示例:<%=gen_key(8)%> '****************************** Function gen_key(digits) '定义并初始化数组     dim char

  • C# 批量生成随机密码必须包含数字和字母并用加密算法加密

    要求: 密码必须包含数字和字母 思路: 1.列出数字和字符. 组成字符串 :chars 2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数. 3. 随机取不小于chars长度的随机数a,取字符串chars的第a位字符. 4.循环 8次,得到8位密码 5.循环N次,批量得到密码. 代码实现如下 Main函数: static void Main(string[] args) { string chars = "0123456789ABCDEFGHIJKLMNOPQRS

随机推荐