`
xqf222
  • 浏览: 126890 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

两段经典的图片验证码程序之二

 
阅读更多

<%
Dim a(10,10)
dim digital,num2,i,hc,J

a(0,1) = "0x3c" '数字0
a(0,2) = "0x66"
a(0,3) = "0xc3"
a(0,4) = "0xc3"
a(0,5) = "0xc3"
a(0,6) = "0xc3"
a(0,7) = "0xc3"
a(0,8) = "0xc3"
a(0,9) = "0x66"
a(0,10)= "0x3c"

a(1,1) = "0x18" '数字1
a(1,2) = "0x1c"
a(1,3) = "0x18"
a(1,4) = "0x18"
a(1,5) = "0x18"
a(1,6) = "0x18"
a(1,7) = "0x18"
a(1,8) = "0x18"
a(1,9) = "0x18"
a(0,10)= "0x7e"


a(2,1) = "0x3c" '数字2
a(2,2) = "0x66"
a(2,3) = "0x60"
a(2,4) = "0x60"
a(2,5) = "0x30"
a(2,6) = "0x18"
a(2,7) = "0x0c"
a(2,8) = "0x06"
a(2,9) = "0x06"
a(2,10)= "0x7e"

a(3,1) = "0x3c" '数字3
a(3,2) = "0x66"
a(3,3) = "0xc0"
a(3,4) = "0x60"
a(3,5) = "0x1c"
a(3,6) = "0x60"
a(3,7) = "0xc0"
a(3,8) = "0xc0"
a(3,9) = "0x66"
a(3,10)= "0x38"

a(4,1) = "0x38" '数字4
a(4,2) = "0x3c"
a(4,3) = "0x36"
a(4,4) = "0x33"
a(4,5) = "0x33"
a(4,6) = "0x33"
a(4,7) = "0xff"
a(4,8) = "0x30"
a(4,9) = "0x30"
a(4,10)= "0xfe"

a(5,1) = "0xfe" '数字5
a(5,2) = "0xfe"
a(5,3) = "0x06"
a(5,4) = "0x06"
a(5,5) = "0x3e"
a(5,6) = "0x60"
a(5,7) = "0xc0"
a(5,8) = "0xc3"
a(5,9) = "0x66"
a(5,10)= "0x3c"

a(6,1) = "0x60" '数字6
a(6,2) = "0x30"
a(6,3) = "0x18"
a(6,4) = "0x0c"
a(6,5) = "0x3e"
a(6,6) = "0x63"
a(6,7) = "0xc3"
a(6,8) = "0xc3"
a(6,9) = "0x66"
a(6,10) ="0x3c"

a(7,1) = "0xff" '数字7
a(7,2) = "0xc0"
a(7,3) = "0x60"
a(7,4) = "0x30"
a(7,5) = "0x18"
a(7,6) = "0x18"
a(7,7) = "0x18"
a(7,8) = "0x18"
a(7,9) = "0x18"
a(7,10)= "0x18"

a(8,1) = "0x3c" '数字8
a(8,2) = "0x66"
a(8,3) = "0xc3"
a(8,4) = "0x66"
a(8,5) = "0x3c"
a(8,6) = "0x66"
a(8,7) = "0xc3"
a(8,8) = "0xc3"
a(8,9) = "0x66"
a(8,10)= "0x3c"

a(9,1) = "0x3c" '数字9
a(9,2) = "0x66"
a(9,3) = "0xc3"
a(9,4) = "0xc3"
a(9,5) = "0x66"
a(9,6) = "0x3c"
a(9,7) = "0x18"
a(9,8) = "0x0c"
a(9,9) = "0x06"
a(9,10)= "0x03"

%>


<%
'### To encrypt/decrypt include this code in your page
'### strMyEncryptedString = EncryptString(strString)
'### strMyDecryptedString = DeCryptString(strMyEncryptedString)
'### You are free to use this code as long as credits remain in place
'### also if you improve this code let me know.

Private Function EncryptString(strString)
'####################################################################
'### Crypt Function (C) 2001 by Slavic Kozyuk grindkore@yahoo.com ###
'### Arguments: strString <--- String you wish to encrypt ###
'### Output: Encrypted HEX string ###
'####################################################################

Dim CharHexSet, intStringLen, strTemp, strRAW, i, intKey, intOffSet
Randomize Timer

intKey = Round((RND * 1000000) + 1000000) '##### Key Bitsize
intOffSet = Round((RND * 1000000) + 1000000) '##### KeyOffSet Bitsize

If IsNull(strString) = False Then
strRAW = strString
intStringLen = Len(strRAW)

For i = 0 to intStringLen - 1
strTemp = Left(strRAW, 1)
strRAW = Right(strRAW, Len(strRAW) - 1)
CharHexSet = CharHexSet & Hex(Asc(strTemp) * intKey)& Hex(intKey)
Next

EncryptString = CharHexSet & "|" & Hex(intOffSet + intKey) & "|" & Hex(intOffSet)
Else
EncryptString = ""
End If
End Function




Private Function DeCryptString(strCryptString)
'####################################################################
'### Crypt Function (C) 2001 by Slavic Kozyuk grindkore@yahoo.com ###
'### Arguments: Encrypted HEX stringt ###
'### Output: Decrypted ASCII string ###
'####################################################################
'### Note this function uses HexConv() and get_hxno() functions ###
'### so make sure they are not removed ###
'####################################################################

Dim strRAW, arHexCharSet, i, intKey, intOffSet, strRawKey, strHexCrypData


strRawKey = Right(strCryptString, Len(strCryptString) - InStr(strCryptString, "|"))
intOffSet = Right(strRawKey, Len(strRawKey) - InStr(strRawKey,"|"))
intKey = HexConv(Left(strRawKey, InStr(strRawKey, "|") - 1)) - HexConv(intOffSet)
strHexCrypData = Left(strCryptString, Len(strCryptString) - (Len(strRawKey) + 1))


arHexCharSet = Split(strHexCrypData, Hex(intKey))

For i=0 to UBound(arHexCharSet)
strRAW = strRAW & Chr(HexConv(arHexCharSet(i))/intKey)
Next

DeCryptString = strRAW
End Function



Private Function HexConv(hexVar)
Dim hxx, hxx_var, multiply
IF hexVar <> "" THEN
hexVar = UCASE(hexVar)
hexVar = StrReverse(hexVar)
DIM hx()
REDIM hx(LEN(hexVar))
hxx = 0
hxx_var = 0
FOR hxx = 1 TO LEN(hexVar)
IF multiply = "" THEN multiply = 1
hx(hxx) = mid(hexVar,hxx,1)
hxx_var = (get_hxno(hx(hxx)) * multiply) + hxx_var
multiply = (multiply * 16)
NEXT
hexVar = hxx_var
HexConv = hexVar
END IF
End Function

Private Function get_hxno(ghx)
If ghx = "A" Then
ghx = 10
ElseIf ghx = "B" Then
ghx = 11
ElseIf ghx = "C" Then
ghx = 12
ElseIf ghx = "D" Then
ghx = 13
ElseIf ghx = "E" Then
ghx = 14
ElseIf ghx = "F" Then
ghx = 15
End If
get_hxno = ghx
End Function

randomize
num = int(7999*rnd+2000) '计数器的值
num2 = EncryptString(num)
session("CheckCode")=num
response.Write(session("CheckCode"))
%>


<%
Dim Image
Dim Width, Height
Dim num
Dim digtal
Dim Length
Dim sort
Length = 4 '自定计数器长度

Redim sort( Length )

num=cint(DeCryptString(num2))
digital = ""
For I = 1 To Length -Len( num ) '补0
digital = digital & "0"
Next
For I = 1 To Len( num )
digital = digital & Mid( num, I, 1 )
Next
For I = 1 To Len( digital )
sort(I) = Mid( digital, I, 1 )
Next
Width = 8 * Len( digital ) '图像的宽度
Height = 10 '图像的高度,在本例中为固定值
Response.ContentType="image/x-xbitmap"
hc=chr(13) & chr(10)
Image = "#define counter_width " & Width & hc
Image = Image & "#define counter_height " & Height & hc
Image = Image & "static unsigned char counter_bits[]={" & hc
For I = 1 To Height
For J = 1 To Length
Image = Image & a(sort(J),I) & ","
Next
Next

Image = Left( Image, Len( Image ) - 1 ) '去掉最后一个逗号
Image = Image & "};" & hc
Response.Write Image
%>

分享到:
评论

相关推荐

    JAVA一段生成验证码图片的程序

    这段Java代码是一个生成验证码图像的程序,用于创建随机的、难以自动识别的字符序列,通常用于网站或应用程序的安全验证,防止机器人或自动化脚本进行恶意操作。验证码的主要目的是确保操作是由真实的人执行的,而...

    图片验证码生成控件

    在实际应用中,开发者可以通过引用这两个DLL文件,轻松地在他们的应用程序中集成这个图片验证码功能。通过调用控件的API接口,他们可以设置验证码的样式、长度、是否包含中文等参数,然后在网页、桌面应用或其他需要...

    VC数字验证码识别程序

    验证码识别是一种常见的安全措施,用于防止自动化程序(如机器人)对网站进行恶意操作。在这个“VC数字验证码识别程序”中,我们主要关注的是基于模式识别的神经网络方法,这是一种先进的图像处理技术,常用于解决...

    怎么用c#做随机数字图片验证码

    在给定的代码片段中,我们看到的是一个完整的C# Web应用程序的一部分,其目的是生成包含随机字符(数字和字母)的图片验证码。该验证码具有一定的随机性,包括验证码内容的随机生成以及验证码图片中的字符位置偏移,...

    简单的实现网页验证码图片识别并转换为文本程序

    本项目提供了一个简单的程序,旨在实现网页验证码图片的识别并将其转换为文本,适用于VS2010开发环境。这个程序的核心目标是处理包含字母和数字的常见验证码图像,尽管它可能无法完美识别所有复杂的验证码设计。 ...

    图片数字字母验证码识别asp.net源码

    本项目“图片数字字母验证码识别asp.net源码”提供了C#编程语言实现的验证码识别解决方案,特别适用于ASP.NET web应用程序。接下来,我们将深入探讨这个领域的相关知识点。 首先,验证码识别通常涉及到图像处理和...

    易语言利用乐玩模块识别加减法验证码

    加减法验证码通常包含两个或更多的数字,通过加法或减法运算得出一个答案,用户需要填写这个答案以验证其身份。在自动化或机器学习的场景下,我们需要编写程序自动识别这些数字并计算结果。 首先,我们需要加载...

    使用Vue 实现滑动验证码功能

    在当今的网络环境下,验证码已成为保护网站安全的关键技术之一。其中滑动验证码作为交互体验较为友好的一种形式,在前端实现尤其受到关注。本文将详细介绍如何使用Vue框架来实现滑动验证码功能,为读者提供一个实现...

    易语言验证码识别系统源码

    在易语言验证码识别系统中,"二值化"是一个重要环节,即将图像转化为黑白两色,这样可以去除颜色信息的干扰,使图像的边缘更加清晰。 2. 干扰去除:在二值化之后,图像中可能还存在一些噪声或非文字元素。通过各种...

    JS键盘输入密码+asp中文验证码

    验证码是防止自动化程序(如机器人)非法操作的一种手段。中文验证码增加了破解的难度,因为识别中文字符比英文字符更复杂。ASP可以生成随机的中文字符序列,并将其转化为图像显示在网页上,用户输入与图片中相同的...

    CV万能验证码识别填写软件

    "CV万能验证码识别填写软件"是针对这种安全防护的一种应对工具,它能够帮助用户自动识别和填写各种复杂的图片验证码。 验证码识别主要分为两大类:人工智能(AI)识别和机器学习识别。本软件可能采用了深度学习技术...

    网页验证码

    2. 可访问性:考虑到不同用户的需求,验证码应提供视觉和听觉两种方式,并确保残障人士也能顺利通过验证。 3. 用户体验:验证码不应过于繁琐,以免影响正常用户的使用体验。通常,验证码的验证过程应该快速且易于...

    12306动态验证码

    1. 图片验证码:这是最常见的形式,12306的动态验证码就属于此类。图片中显示一组扭曲或变形的文字或数字,用户需要正确输入才能通过验证。 2. 数字验证码:仅由数字组成,相对简单,但同样可以动态变化。 3. 语音...

    Python实现一个简单的验证码程序

    ### Python 实现简单验证码程序详解 #### 一、引言 在互联网应用中,验证码是一种常见的用户交互方式,用于区分真实用户与自动化脚本。通过简单的图像或文本形式,它可以有效地防止恶意登录、垃圾邮件和其他自动化...

    3个asp.net的验证码后台生网页

    在VS2010中使用.NET Framework 4.0进行开发,我们可以创建多种类型的验证码,包括图片验证码、数学问题验证码等。以下是对这些验证码实现方式的详细解释: 1. 图片验证码: 图片验证码是最常见的形式,它通过生成...

    读取网页验证码的软件源码

    常见的验证码类型包括但不限于:文本验证码、图片验证码等。其中,图片验证码因其识别难度较高而被广泛应用于网站登录验证等环节。 对于开发者来说,如何有效地读取并识别这些验证码成为了一个挑战。通常,解决这一...

    识别网站高级的验证码

    验证码(CAPTCHA)是一种用于区分用户是人类还是计算机程序的技术。它主要用于防止自动化软件进行恶意活动,如垃圾邮件发送、票务抢购等。 1. **目的**: - 验证码的主要目的是强制人机交互来抵御机器自动化攻击。...

    ASP.NET2.0验证码控件

    ASP.NET 2.0验证码控件是Web开发中用于防止自动化程序(如机器人)非法操作的重要工具,如无授权的表单提交、垃圾邮件发送等。验证码的主要目标是确保只有人类用户能完成特定的交互,增加了网站的安全性。在ASP.NET ...

    多种验证码类

    这种验证码会生成一张包含随机字母、数字或者符号的图片,用户需要识别并输入这些字符。图像验证码的设计通常包括扭曲、噪声、颜色混合等,以增加机器识别的难度。`Authcode.class.php`可能是用于生成这类验证码的...

    12306 新版验证码识别python脚本

    12306新版验证码识别Python脚本是一个用于自动化处理12306网站验证码的程序,这在购票高峰期尤其有用,因为手动输入验证码可能会耽误时间。本文将深入探讨这个脚本背后的原理、技术栈以及如何实现验证码识别。 ...

Global site tag (gtag.js) - Google Analytics