欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-08-23 19:19:54
如果有哪里看不懂的,请留言哦 生成随机码类:sigowayrandom.cs 复制代码 代码如下:using system; namespace rongyi.m...

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

生成随机码类: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
}
}