验证码的程序及原理

以撸的海角

以撸的海角

2016-01-29 17:08

验证码的程序及原理,验证码的程序及原理

一共4个页面:form.asp; chk.asp; num.asp; count.asp
得到一个随即数字。加密!
解密后成成XBM图片
利用session 判断

form.asp


<%
'### 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("pwdt")=num
%
<form action="chk.asp" method=post
请输入验证码: <input type="text" name="pwds"
<img src="http://img.jcwcn.com/attachment/portal"<input type=submit value=提交
</form


chk.asp
<%
if trim(request.form("pwds"))<trim(session("pwdt")) then
%
输入错误: 应该为:<%=session("pwdt")%,可你输入的是:<%=reque

展开更多 50%)
分享

猜你喜欢

验证码的程序及原理

ASP
验证码的程序及原理

JSP验证码代码

Web开发
JSP验证码代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JSP彩色验证码

Java JAVA基础
JSP彩色验证码

jsp 生成验证码代码

Web开发
jsp 生成验证码代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

点击才出现验证码

Web开发
点击才出现验证码

12306图片验证码怎么样 12306验证码图片怎么用

软件教程
12306图片验证码怎么样 12306验证码图片怎么用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

优化XP注册表与驱动 让低配置运行加速

优化XP注册表与驱动 让低配置运行加速

FIF小组ASP互动视频教程

FIF小组ASP互动视频教程
下拉加载更多内容 ↓