用vb.net实现验证码生成程序

it2022-05-09  63

首先引入命名空间:

Imports  System.Drawing Imports  System.io

 

  ' 产生随机码      Private   Function generateVCode() Function generateVCode(ByVal CodeLength As IntegerAs String        Dim allChar As String = "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,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"        Dim allCharArray() As String = allChar.Split(",")        Dim randomCode As String = ""        Dim temp As Integer = -1        Dim rand As Random = New Random        Dim i As Integer = 0        Do While (i < CodeLength)            If (temp <> -1Then                Dim aa As Integer = CType(DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer'根据时间生成随机数种子                rand = New Random(aa)            End If            Dim t As Integer = rand.Next(61+ 1            If t > allCharArray.Length - 1 Then t = allCharArray.Length - 1            If temp = t Then '抑制产生连续重复的验证码。                i -= 1                randomCode = Microsoft.VisualBasic.Left(randomCode, i)            End If            temp = t            randomCode = randomCode + allCharArray(t)            i += 1        Loop        Return randomCode    End Function   ' 创建验证码图象      Private   Sub CreateImage() Sub CreateImage(ByVal checkCode As String)        Dim iwidth As Integer = Convert.ToInt32(checkCode.Length * 15)        Dim image As Bitmap = New Bitmap(iwidth, 25)        Dim g As Graphics = Graphics.FromImage(image)        Dim f As Font = New Font("Arial"12, System.Drawing.FontStyle.Bold) '设置输出的字体的及字大小可作相应调整        Dim b As Brush = New SolidBrush(Color.White)        g.Clear(Color.Green) '填充背景色,可根据页面风格更换相应的颜色        g.DrawString(checkCode, f, b, 33)        Dim rand As Random = New Random        '画图片的前景燥点        For i As Integer = 0 To 60            Dim x As Integer = rand.Next(image.Width)            Dim y As Integer = rand.Next(image.Height)            image.SetPixel(x, y, Color.FromArgb(rand.Next()))        Next        Dim ms As MemoryStream = New System.IO.MemoryStream        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)        Response.ClearContent()        Response.ContentType = "image/Jpeg"        Response.BinaryWrite(ms.ToArray())        g.Dispose()        image.Dispose()    End Sub     Protected   Sub Page_Load() Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load        '在此处放置初始化页的用户代码        Dim checkCode As String = generateVCode(4)        Session("CheckCode"= checkCode.ToString        CreateImage(checkCode)    End Sub 现在我把它封装成了web控件, 需要的朋友可以直接拿去用,但还请各位朋友能够帮助改进程序,谢谢! 验证控件 如果无法下载,请发邮件至 wxnet2008@gmail.com

转载于:https://www.cnblogs.com/wangxiang/articles/615162.html

相关资源:VB根据硬件序列号生成软件注册码

最新回复(0)