using System;
using System.Text;
namespace SDK
{
public class MyCaptcha
{
//产生的验证字符串
string strNum;
//获得随机数
readonly Random rad = new Random();
readonly string[] color = { "red", "purple", "blue", "green" };
readonly string[] size = { "3px", "4px", "6px", "5px", };
readonly char[] chrNum = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'0','1','2','3','4','5','6','7','8','9'
};
int GetNum(int n)
{
return (int)(rad.NextDouble() * n);
}
/// <summary>
/// 获取验证码(返回html代码)
/// </summary>
public string GetCode()
{
//初始化,字符缓冲区
StringBuilder code = new StringBuilder(100);
StringBuilder strNum = new StringBuilder(10);
for (int i = 0; i < 4; i++)
{
char num = chrNum[GetNum(62)];
strNum.Append(num);
int index = num % 4;
code.Append("<font size = ").Append(size[index]).Append(" color = ").Append(color[index]).Append(">").Append(num).Append("</font>");
}
this.strNum = strNum.ToString();
return code.ToString();
}
/// <summary>
/// 获取一个值,指示验证是否成功(不区分大小写)
/// </summary>
/// <param name="strNum">待比较的字符串</param>
public bool IsValid(string strNum)
{
return this.strNum.ToUpper() == strNum.ToUpper();
}
}
}