net里各种验证码的实现文档格式.docx

上传人:b****6 文档编号:21190835 上传时间:2023-01-28 格式:DOCX 页数:19 大小:22.59KB
下载 相关 举报
net里各种验证码的实现文档格式.docx_第1页
第1页 / 共19页
net里各种验证码的实现文档格式.docx_第2页
第2页 / 共19页
net里各种验证码的实现文档格式.docx_第3页
第3页 / 共19页
net里各种验证码的实现文档格式.docx_第4页
第4页 / 共19页
net里各种验证码的实现文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

net里各种验证码的实现文档格式.docx

《net里各种验证码的实现文档格式.docx》由会员分享,可在线阅读,更多相关《net里各种验证码的实现文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

net里各种验证码的实现文档格式.docx

stringcheckCode=string.Empty;

System.Randomrandom=newRandom();

for(inti=0;

i<

5;

i++)

number=random.Next();

if(number%2==0)

code=(char)('

0'

+(char)(number%10));

else

a'

+(char)(number%26));

checkCode+=code.ToString();

//response.cookies.add(newhttpcookie("

checkcode"

checkcode));

Session["

CheckCode"

]=checkCode;

returncheckCode;

privatevoidCreateCheckCodeImage(stringcheckCode)

if(checkCode==null||checkCode.Trim()==String.Empty)

return;

System.Drawing.Bitmapimage=

newSystem.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*12.5)),22);

Graphicsg=Graphics.FromImage(image);

try

{Randomrandom=newRandom();

//生成随机生成器

g.Clear(Color.White);

25;

intx1=random.Next(image.Width);

intx2=random.Next(image.Width);

inty1=random.Next(image.Height);

inty2=random.Next(image.Height);

g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);

Fontfont=newSystem.Drawing.Font("

Arial"

12,(System.Drawing.FontStyle.Bold));

System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);

//System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.Blue,1.0f,true);

g.DrawString(checkCode,font,brush,2,2);

//画图片的前景噪声点

100;

intx=random.Next(image.Width);

inty=random.Next(image.Height);

//image.setpixel(x,y,color.FromArgb(random.Next()));

image.SetPixel(x,y,Color.Yellow);

//画图片的边框线

g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);

System.IO.MemoryStreamms=newSystem.IO.MemoryStream();

image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);

Response.ClearContent();

Response.ContentType="

image/Gif"

;

Response.BinaryWrite(ms.ToArray());

finally

g.Dispose();

image.Dispose();

#region

protectedoverridevoidOnInit(EventArgse)

『InitializeComponent();

base.OnInit(e);

privatevoidInitializeComponent()

{this.Load+=newSystem.EventHandler(this.Page_Load);

#endregion

}

法2、

string[]str=newstring[4];

stringserverCode="

string[]a=newstring[61]{"

1"

"

2"

3"

4"

5"

6"

7"

8"

9"

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"

};

Randomrandom=newRandom();

4;

intrd=random.Next(60);

str[i]=a[rd];

CreateCheckCodeImage(str);

foreach(stringsinstr)

serverCode+=s;

serverCode"

]=serverCode;

publicvoidCreateCheckCodeImage(string[]checkCode)

if(checkCode==null||checkCode.Length<

=0)

System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*32.5)),30);

System.Drawing.Graphicsg=Graphics.FromImage(image);

//清空图片背景色

//画图片的背景噪音线

20;

//定义颜色

Color[]c={Color.Black,Color.Red,Color.DarkBlue,Color.Green,Color.Orange,Color.Brown,Color.DarkCyan,Color.Purple};

//定义字体

string[]f={"

Verdana"

"

MicrosoftSansSerif"

ComicSansMS"

宋体"

};

for(intk=0;

k<

=checkCode.Length-1;

k++)

intcindex=random.Next(7);

intfindex=random.Next(5);

FontdrawFont=newFont(f[findex],16,(System.Drawing.FontStyle.Bold));

SolidBrushdrawBrush=newSolidBrush(c[cindex]);

floatx=5.0F;

floaty=0.0F;

floatwidth=20.0F;

floatheight=25.0F;

intsjx=random.Next(10);

intsjy=random.Next(image.Height-(int)height);

RectangleFdrawRect=newRectangleF(x+sjx+(k*25),y+sjy,width,height);

StringFormatdrawFormat=newStringFormat();

drawFormat.Alignment=StringAlignment.Center;

g.DrawString(checkCode[k],drawFont,drawBrush,drawRect,drawFormat);

//画图片的前景噪音点

image.SetPixel(x,y,Color.FromArgb(random.Next()));

在其他页面调用:

functionreloadcode(im){

document.getElementById("

Img"

).src="

验证码.aspx?

+newDate;

imgsrc="

验证码.aspx"

id="

onclick="

reloadcode(this)"

style="

width:

56px;

height:

28px"

/>

法3、

使用随机数方式,代码如下:

private 

String 

GetRandomint(int 

codeCount) 

 

Random 

random 

new 

Random();

string 

min 

max 

for 

(int 

0;

codeCount;

i++) 

+="

max+="

return 

(random.Next(Convert.ToInt32(min),Convert.ToInt32(max)).ToString());

使用随机组合方式,代码如下:

1.private 

CreateRandomCode(int 

2.{ 

3. 

allChar 

0,1,2,3,4,5,6,7,8,9"

4. 

string[] 

allCharArray 

allChar.Split('

'

);

5. 

randomCode 

6. 

int 

temp 

-1;

7. 

rand 

8. 

9. 

10. 

if 

(temp 

!

-1) 

11. 

12. 

Random(i 

((int)DateTime.Now.Ticks));

13. 

14. 

rand.Next(9);

15. 

== 

t) 

16. 

17. 

CreateRandomCode(codeCount);

18. 

19. 

t;

20. 

+= 

allCharArray[t];

21. 

22. 

randomCode;

23.} 

数字+字母验证码的实现,代码如下:

0,1,2,3,4,5,6,7,8,9,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,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"

rand.Next(61);

汉字验证码的实现,代码如下:

1./**/ 

2./* 

此函数在汉字编码范围内随机创建含两个元素的十六进制字节数组,每个字节数组代表一个汉字,并将 

3.四个字节数组存储在object数组中。

4.参数:

strlength,代表需要产生的汉字个数 

5.*/ 

public 

static 

object[] 

CreateRegionCode(int 

strlength) 

//定义一个字符串数组储存汉字编码的组成元素 

rBase 

String[16] 

0"

 

rnd 

//定义一个object数组用来 

bytes 

object[strlength];

/**/ 

/*每循环一次产生一个含两个元素的十六进制字节数组,并将其放入bject数组中 

每个汉字有四个区位码组成 

区位码第1位和区位码第2位作为字节数组第一个元素 

区位码第3位和区位码第4位作为字节数组第二个元素 

*/ 

strlength;

//区位码第1位 

23. 

r1 

rnd.Next(11, 

14);

24. 

str_r1 

rBase[r1].Trim();

25. 

26. 

//区位码第2位 

27. 

Random(r1 

unchecked((int)DateTime.Now.Ticks) 

i);

//更换随机数发生器的种子避免产生重复值 

28. 

r2;

29. 

(r1 

13) 

30. 

31. 

r2 

rnd.Next(0, 

7);

32. 

33. 

else 

34. 

35. 

16);

36. 

37. 

str_r2 

rBase[r2].Trim();

38. 

39. 

//区位码第3位 

40. 

Random(r2 

41. 

r3 

rnd.Next(10, 

42. 

str_r3 

rBase[r3].Trim();

43. 

44. 

//区位码第4位 

45. 

Random(r3 

46. 

r4;

47. 

(r3 

10) 

48. 

49. 

r4 

rnd.Next(1, 

50. 

51. 

15) 

52. 

53. 

15);

54. 

55. 

56. 

57. 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1