VB.NET中文验证码如何获取
创始人
2024-06-20 00:21:46
0

我们在使用VB.NET这样一款开发语言进行编程的时候,需要认清其中的特性,才能真正完善我们的程序开发。下面就先一起了解一下VB.NET中文验证码的获取首先要修改一下配置,C#中又checked和unchedked检查整数溢出处理。#t#

但是VB.NET中没办法,溢出即报错,***处理方法是

VB.net菜单:项目 --> XXX 属性... --> 配置 --> 优化 --> 选中“移除整数溢出检查”复选框

下面来仔细研究一下VB.NET中文验证码的相关代码编写:

  1. Function RndStr()Function 
    RndStr() As String  
  2. Dim gb As SystemSystem.Text.
    Encoding
     = System.Text.Encoding.
    GetEncoding("gb2312")  
  3. Dim bytes As Object() = 
    CreateRegionCode(4)  
  4. Dim str1 As String = gb.GetString
    (DirectCast(Convert.ChangeType
    (bytes(0), GetType(Byte())), Byte()))  
  5. Dim str2 As String = gb.GetString
    (DirectCast(Convert.ChangeType
    (bytes(1), GetType(Byte())), Byte()))  
  6. Dim str3 As String = gb.GetString
    (DirectCast(Convert.ChangeType
    (bytes(2), GetType(Byte())), Byte()))  
  7. Dim str4 As String = gb.GetString
    (DirectCast(Convert.ChangeType
    (bytes(3), GetType(Byte())), Byte()))  
  8. Dim txt As String = (str1 & 
    str2 & str3 & str4)  
  9. End Function  
  10. Function CreateRegionCode()Function 
    CreateRegionCode(ByVal strlength 
    As Integer) As Object()  
  11. Dim rBase As String() = New String() 
    {"0", "1", "2", "3", "4", "5", 
    "6", "7", "8", "9", "a", "b", 
    "c", "d", "e", "f"}  
  12. Dim rnd As New Random  
  13. Dim bytes As Object() = New 
    Object(strlength - 1) {}  
  14. Dim i As Integer = 0 
  15. Do While (i < strlength)  
  16. Dim r2 As Integer  
  17. Dim r4 As Integer  
  18. Dim r1 As Integer = rnd.Next(11, 14)  
  19. Dim str_r1 As String = rBase(r1).Trim  
  20. rnd = New Random(r1 * DateTime.
    Now.Ticks + i)  
  21. If (r1 = 13) Then  
  22. r2 = rnd.Next(0, 7)  
  23. Else  
  24. r2 = rnd.Next(0, &H10)  
  25. End If  
  26. Dim str_r2 As String = rBase(r2).Trim  
  27. Dim r3 As Integer = New Random(
    (r2 * DateTime.Now.Ticks) + i).
    Next(10, &H10)  
  28. Dim str_r3 As String = rBase(r3).Trim  
  29. rnd = New Random((r3 * DateTime.
    Now.Ticks) + i)  
  30. Select Case r3  
  31. Case 10  
  32. r4 = rnd.Next(1, &H10)  
  33. Exit Select  
  34. Case 15  
  35. r4 = rnd.Next(0, 15)  
  36. Exit Select  
  37. Case Else  
  38. r4 = rnd.Next(0, &H10)  
  39. Exit Select  
  40. End Select  
  41. Dim str_r4 As String = rBase(r4).Trim  
  42. Dim byte1 As Byte = Convert.
    ToByte((str_r1 & str_r2), &H10)  
  43. Dim byte2 As Byte = Convert.
    ToByte((str_r3 & str_r4), &H10)  
  44. Dim str_r As Byte() = New Byte() 
    {byte1, byte2}  
  45. bytes.SetValue(str_r, i)  
  46. i += 1  
  47. Loop  
  48. Return bytes  
  49. End Function 

VB.NET中文验证码相关实现方法就为大家介绍到这里。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...