首 页 网站运营 网络编程 网页制作 图象媒体 数据库 建站资源 网管专区 下载专区 最新资讯
IT学堂|红色黑客联盟
设为首页
加入收藏
联系站长
您所在的位置:首页>网络编程>ASP>文章内容
ASP验证码的程序及实现原理
来源: 作者: 发布时间:2007-04-12


一共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="count.asp?sksid=<%=num2%>"> <input type=submit value=提交>
</form>


共3页: 上一页 1 [2] [3] 下一页


[推荐] [返回顶部] [打印本页] [关闭窗口]
热点文章
·ASP如何获取客户端真实IP地址
·ASP实现可显示和隐藏的树型菜单
·用ASP动态生成JS的表单验证代码
·ASP:用Asp编程实现QQ的在线情况查询
·ASP:用ASP打造一个小型的网页BBS系统
·ASP:用ASP编程实现网络内容快速查找
·ASP:利用ASP把图片上传到数据库
·ASP无法更新ACCESS数据库解决方法
·如何对ASP.NET进行性能优化
·入门:防范SQL注入攻击的新办法
相关文章
·ASP提高数据显示效率--缓存探幽
·ASP环境下邮件列表功能的实现
·ASP中双引号单引号和&连接符使用技巧
·ASP实现将汉字转换成拼音的函数
·防止网站内容被人小偷和采集的ASP代码
·支持多风格变换的ASP分页类
·修改asp代码防止被杀毒软件误删
·安装JDK 就可同时运行PHP和Java?
·用ASP调用SQL Server视图和存储过程
·自己总结的PHP知识
文章检索
Google
相关文章
·ASP提高数据显示效率--
·ASP环境下邮件列表功能
·ASP中双引号单引号和&连
·ASP实现将汉字转换成拼
·防止网站内容被人小偷和
·支持多风格变换的ASP分
·修改asp代码防止被杀毒
·安装JDK 就可同时运行PH
·用ASP调用SQL Server视
·自己总结的PHP知识
·asp读sql server数据出
·PHPer为什么被认为是草
·ASP教程:ASP脚本循环语
·PHP快速入门教程之for循
·ASP中使用Session变量的