VB.NET中文验证码如何获取

开发 后端
VB.NET中文验证码的实现方式会在本文中为大家详细介绍。希望初学者们可以通过本文介绍的相关内容充分掌握其中知识。

我们在使用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中文验证码相关实现方法就为大家介绍到这里。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-11 14:16:14

VB.NET生成验证码

2010-01-22 15:56:03

VB.NET获取当前U

2010-01-07 17:41:19

VB.NET验证LDA

2015-09-21 15:31:05

php实现验证码

2009-11-10 15:18:35

VB.NET封面

2010-01-22 17:55:23

VB.NET语法糖

2010-01-18 14:47:42

VB.NET获取环境变

2009-11-10 13:03:45

VB.NET虚拟码

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET

2010-01-08 15:33:57

VB.NET文字宽度计

2009-10-29 14:02:24

VB和VB.NET比较

2009-10-16 09:08:35

VB.NET获取网卡地

2010-01-14 17:03:01

VB.NET获取网卡地

2010-01-12 09:51:07

VB.NET操作dbf

2009-10-14 12:51:41

VB.NET Data

2009-10-20 14:21:55

VB.NET fnSi

2009-11-02 17:12:01

VB和VB.NET

2010-01-11 18:21:22

VB.NET获取硬盘信
点赞
收藏

51CTO技术栈公众号