VB.NET中文驗證碼如何獲取
作者:佚名
VB.NET中文驗證碼的實現(xiàn)方式會在本文中為大家詳細介紹。希望初學者們可以通過本文介紹的相關(guān)內(nèi)容充分掌握其中知識。
我們在使用VB.NET這樣一款開發(fā)語言進行編程的時候,需要認清其中的特性,才能真正完善我們的程序開發(fā)。下面就先一起了解一下VB.NET中文驗證碼的獲取首先要修改一下配置,C#中又checked和unchedked檢查整數(shù)溢出處理。#t#
但是VB.NET中沒辦法,溢出即報錯,***處理方法是
VB.net菜單:項目 --> XXX 屬性... --> 配置 --> 優(yōu)化 --> 選中“移除整數(shù)溢出檢查”復選框
下面來仔細研究一下VB.NET中文驗證碼的相關(guān)代碼編寫:
- Function RndStr()Function
RndStr() As String - Dim gb As SystemSystem.Text.
Encoding = System.Text.Encoding.
GetEncoding("gb2312") - Dim bytes As Object() =
CreateRegionCode(4) - Dim str1 As String = gb.GetString
(DirectCast(Convert.ChangeType
(bytes(0), GetType(Byte())), Byte())) - Dim str2 As String = gb.GetString
(DirectCast(Convert.ChangeType
(bytes(1), GetType(Byte())), Byte())) - Dim str3 As String = gb.GetString
(DirectCast(Convert.ChangeType
(bytes(2), GetType(Byte())), Byte())) - Dim str4 As String = gb.GetString
(DirectCast(Convert.ChangeType
(bytes(3), GetType(Byte())), Byte())) - Dim txt As String = (str1 &
str2 & str3 & str4) - End Function
- Function CreateRegionCode()Function
CreateRegionCode(ByVal strlength
As Integer) As Object() - Dim rBase As String() = New String()
{"0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b",
"c", "d", "e", "f"} - Dim rnd As New Random
- Dim bytes As Object() = New
Object(strlength - 1) {} - Dim i As Integer = 0
- Do While (i < strlength)
- Dim r2 As Integer
- Dim r4 As Integer
- Dim r1 As Integer = rnd.Next(11, 14)
- Dim str_r1 As String = rBase(r1).Trim
- rnd = New Random(r1 * DateTime.
Now.Ticks + i) - If (r1 = 13) Then
- r2 = rnd.Next(0, 7)
- Else
- r2 = rnd.Next(0, &H10)
- End If
- Dim str_r2 As String = rBase(r2).Trim
- Dim r3 As Integer = New Random(
(r2 * DateTime.Now.Ticks) + i).
Next(10, &H10) - Dim str_r3 As String = rBase(r3).Trim
- rnd = New Random((r3 * DateTime.
Now.Ticks) + i) - Select Case r3
- Case 10
- r4 = rnd.Next(1, &H10)
- Exit Select
- Case 15
- r4 = rnd.Next(0, 15)
- Exit Select
- Case Else
- r4 = rnd.Next(0, &H10)
- Exit Select
- End Select
- Dim str_r4 As String = rBase(r4).Trim
- Dim byte1 As Byte = Convert.
ToByte((str_r1 & str_r2), &H10) - Dim byte2 As Byte = Convert.
ToByte((str_r3 & str_r4), &H10) - Dim str_r As Byte() = New Byte()
{byte1, byte2} - bytes.SetValue(str_r, i)
- i += 1
- Loop
- Return bytes
- End Function
VB.NET中文驗證碼相關(guān)實現(xiàn)方法就為大家介紹到這里。
責任編輯:曹凱
來源:
博客園