JavaScript如何生成图片验证码?
[i=s] 本帖最后由 akyahoo 于 2009-11-12 09:29 AM 编辑 [/i][b][size=4][color=#808000]就像这个PHPX的登录页面一样。它的验证码是直接通过[/color][/size][/b][b][size=4][color=#808000] JavaScript直接生成的,而不是通过PHP的GD库生成,然后通过服务器发送过来的。[/color][/size][/b]
[b][size=4][color=#808000]
[/color][/size][/b]
[b][size=4][color=#808000]点击“[/color][/size][/b][b][size=4][color=#0000ff]换一个[/color][/size][/b][b][size=4][color=#808000]”后,[/color][/size][/b][b][size=4][color=#808000] JavaScript就直接在浏览器里重新生成一个新的[/color][/size][/b][b][size=4][color=#808000]验证码。不需要发送回服务器。[/color][/size][/b]
[b][size=4][color=#808000]
[/color][/size][/b]
[b][size=4][color=#808000]
[/color][/size][/b]
[b][size=4][color=#808000]
[/color][/size][/b]
[color=#ff8c00][b][size=4] 请问,JavaScript如何[/size][/b][b][size=4]生成图片和随机字母和数字的?[/size][/b][/color]:o 谁说它没有走服务器?你使用firebug抓一下包就能看到,你操作的过程中正在向服务器发送请求。 没想到呀。算了。我不用图片验证了。我的服务器在美国,用Ajax效果也不好。
[b][color=#0000ff]那么,请问,如何用JavaScript生成四个随机的数字,并且验证输入是否正确?[/color][/b]:funk: 验证码的随机数字在给用户看之前必须要让服务器知道 否则当用户再次访问的时候怎么知道它输入的正确与否
而向服务器端传递随机数往往会暴露给抓包的程序 所以不能向服务器传递相同随机数
结果就是验证码只能在服务器端生成 思想家 [quote]思想家
[size=2][color=#999999]奶瓶 发表于 2009-11-12 04:13 PM[/color] [url=http://www.phpx.com/happy/redirect.php?goto=findpost&pid=1140657&ptid=258294][img]http://www.phpx.com/happy/images/common/back.gif[/img][/url][/size][/quote]
感觉你整天在灌水,从没正经回答人的技术问题。 [quote]验证码的随机数字在给用户看之前必须要让服务器知道 否则当用户再次访问的时候怎么知道它输入的正确与否
而向服务器端传递随机数往往会暴露给抓包的程序 所以不能向服务器传递相同随机数
结果就是验证码只能在服务 ...
[size=2][color=#999999]sanders_yao 发表于 2009-11-12 02:54 PM[/color] [url=http://www.phpx.com/happy/redirect.php?goto=findpost&pid=1140649&ptid=258294][img]http://www.phpx.com/happy/images/common/back.gif[/img][/url][/size][/quote]
没明白。我只是想防止机器人自动登录或暴力破解密码。用户为什么要再次访问? [quote]
没明白。我只是想防止机器人自动登录或暴力破解密码。用户为什么要再次访问?
[size=2][color=#999999]akyahoo 发表于 2009-11-12 08:29 PM[/color] [url=http://www.phpx.com/happy/redirect.php?goto=findpost&pid=1140678&ptid=258294][img]http://www.phpx.com/happy/images/common/back.gif[/img][/url][/size][/quote]
这样做其实为了降低服务器压力,有很多人根本就没打算登录,还有更多的是机器人,不用每次打开页面都生成一个验证码,那个操作很浪费资源。 [quote]
感觉你整天在灌水,从没正经回答人的技术问题。
[size=2][color=#999999]akyahoo 发表于 2009-11-12 08:26 PM[/color] [url=http://www.phpx.com/happy/redirect.php?goto=findpost&pid=1140677&ptid=258294][img]http://www.phpx.com/happy/images/common/back.gif[/img][/url][/size][/quote]
做人不用太正经 对,有技术的地方就有人,有人的地方就有奶,有奶的地方就会有奶瓶! 如果要省服务器资源,倒是有一个不是太好的办法.
把一堆事先准备好的图片按一定的顺序排序好,生成随机数图片名称,然后直接去下载图片.
只是要是图片少了也不太好,图片多了吧查询也是要花费一定资源的. [quote]如果要省服务器资源,倒是有一个不是太好的办法.
把一堆事先准备好的图片按一定的顺序排序好,生成随机数图片名称,然后直接去下载图片.
只是要是图片少了也不太好,图片多了吧查询也是要花费一定资源的.
[size=2][color=#999999]游戏人间 发表于 2009-11-14 12:38 AM[/color] [url=http://www.phpx.com/happy/redirect.php?goto=findpost&pid=1140774&ptid=258294][img]http://www.phpx.com/happy/images/common/back.gif[/img][/url][/size][/quote]
呵呵。这是好方法呀。只要机器人不能识别,两三张图片就够了。 固定图片随机化没用的
两三张图片直接人工识别好之后比较md5好了
就算图片多也是一个学习的过程,维护一个md5表,抓到验证码之后md5数据从表里面取,有的继续,没有的把图片保存下来,人工识别后md5入库,越积累识别率越高...等到高到一个几率就可以发难了..........
还是动态生成好
页:
[1]