验证码是什么

验证码是什么,第1张

验证码是一种区分用户是计算机还是人的公共全自动程序。验证码问题由计算机生成并评判,只有人类才能解答,可以防止恶意破解密码、刷票、论坛灌水等问题,分为Gif动画验证码、手机短信验证码、手机语音验证码和视频验证码。大多数网站的验证码都是需要点击一下填写框,然后会自动d出验证码。

验证码使用流程:

大多数网站的验证码都是需要点击一下填写框,然后会自动d出验证码。由于验证码是随机产生的,有很大几率会出现无法清楚识别的验证码,所以需要注意的是,一般网站都会有相应的提示,如“看不清,换一张”等,如果没有提示,则直接点击当前的验证码,可以完成验证码的更换。

源码,保存为CodePhotoasp,

在要插入验证码的地方插入<img border="0" src="codephotoasp" width="50" height="20">

生成的随机验证码存在

Session("ValidCode")中,你只要把用户输入的验证码和Session("ValidCode")比较就行了。

<%

Call Com_CreatValidCode("ValidCode")

responsewrite vCodes

Sub Com_CreatValidCode(pSN)

' 禁止缓存

ResponseExpires = -9999

ResponseAddHeader "Pragma","no-cache"

ResponseAddHeader "cache-ctrol","no-cache"

ResponseContentType = "Image/BMP"

Randomize

Dim i, ii, iii

Const cOdds = 2 ' 杂点出现的机率

Const cAmount = 36 ' 文字数量

Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

' 颜色的数据(字符,背景)

Dim vColorData(1)

vColorData(0) = ChrB(255) & ChrB(100) & ChrB(0) ' 蓝0,绿0,红0(黑色)

vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) ' 蓝250,绿236,红211(浅蓝色)

' 随机产生字符

Dim vCode(4), vCodes

For i = 0 To 3

vCode(i) = Int(Rnd cAmount)

vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1)

Next

Session("ValidCode") = vCodes '记录入Session

' 字符的数据

Dim vNumberData(35)

vNumberData(0) = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111"

vNumberData(1) = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111"

vNumberData(2) = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011"

vNumberData(3) = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111"

vNumberData(4) = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011"

vNumberData(5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111"

vNumberData(6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111"

vNumberData(7) = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111"

vNumberData(8) = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111"

vNumberData(9) = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111"

vNumberData(10) = "1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011"

vNumberData(11) = "1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111"

vNumberData(12) = "1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111"

vNumberData(13) = "1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111"

vNumberData(14) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111"

vNumberData(15) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111"

vNumberData(16) = "1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111"

vNumberData(17) = "1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011"

vNumberData(18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111"

vNumberData(19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111"

vNumberData(20) = "1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011"

vNumberData(21) = "1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011"

vNumberData(22) = "1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011"

vNumberData(23) = "1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111"

vNumberData(24) = "1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111"

vNumberData(25) = "1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111"

vNumberData(26) = "1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011"

vNumberData(27) = "1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011"

vNumberData(28) = "1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111"

vNumberData(29) = "1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111"

vNumberData(30) = "1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111"

vNumberData(31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111"

vNumberData(32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111"

vNumberData(33) = "1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011"

vNumberData(34) = "1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111"

vNumberData(35) = "1100000011110111011111111101111111101111111110111111110111111111011111111011111111101110111100000011"

' 输出图像文件头

ResponseBinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)

' 输出图像信息头

ResponseBinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) &_

ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_

ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0)

For i = 9 To 0 Step -1 ' 历经所有行

For ii = 0 To 3 ' 历经所有字

For iii = 1 To 10 ' 历经所有像素

' 逐行、逐字、逐像素地输出图像数据

If Rnd 100 + 1 < cOdds Then ' 随机生成杂点

ResponseBinaryWrite vColorData(0)

Else

ResponseBinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i 10 + iii, 1))

End If

Next

Next

Next

End Sub

%>

验证码介绍:

验证码是程序生成的,具备防灌水,防软件自动识别的功能;有关到 *** 作、查询数据库、安全等时,先判断用户输入的验证码是不是和程序生成的一致性。

生成:是数字/字母/汉字/英文的随机组合,将此组合更新保存在session中;

生成干扰线条(是为增加识别难度,防机器自动识别);

将验证组合与干扰先合成 生成真正的;

当需要做防伪验证时,就会从session中读取验证组合,与用户输入的验证码对比;

不一致将返回 *** 作 ,而保证数据安全。

总结:

楼上说 js随机数+css 生成,完全错误。在程序使用范围类是没有任何用处的。

怎样做手机验证码:

第一部分:组织验证内容

也就是生成动态验证码,可以用手机号+当前时间戳做个加密运算之类的,得出一个4-6位的验证码

当然这个时候还没完,要把手机号和这个验证码同时存储到数据库中(如果是临时验证的话,存储到Session中也是可以的) ;

第二部分:发送短信

这部分就是将刚才组织好的验证码发送给对应的手机用户的过程。方法很多,例如可以购买短信猫、购买短信通道、利用飞信端口

当然,推荐购买短信通道的方式。购买完了之后通道提供商都会给你相关的开发接口,有发短信的、收短信的、查询短信的等等。根据自己的编程语言直接开发就可以了。基本费用是6分钱左右一条吧,买多了会便宜些;

第三部分:验证用户

拿着用户在页面输入的号码和你数据库里的比对一下就OK了,剩下的就想做什么做什么了。当然,用户输入的号码就是发到手机上的那个验证码。

验证码一般都是在服务器随机产生,在html页面用ajax获取验证码来和用户输入的验证码进行比较

<script type="text/javascript">

var xml>

以上就是关于验证码是什么全部的内容,包括:验证码是什么、网站中的验证码是怎么做的,谁有源程序、如何用html,css,js写验证码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9269789.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存