全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 849|回复: 13
打印 上一主题 下一主题

高效的验证码服务器

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-25 10:27:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
传统方式生成验证码运算的地方:
1.获取生成验证码的请求->生成验证图片->输出
2.获取输入值,与session中的真实值校对

尝试改进:
与SESSION剥离:使用不过逆的哈希加密真实验证码,与系统时间绑定,将此哈希值输出到表单,同时将HASH与真实验证值输入到KV储存
前端缓存:输出的验证码图片只从KV中获取一次(获取一次后从KV映射表中删掉),后续重复的验证请求直接输出之前运算出的图片,减少后端运算量


算法举例:
假设 capmark=验证码的值
输出哈希  hashout=xencrypt(md5(key+capmark+timestamp)),//xencrypt可以自己扩展想要的加密方式。

输出到表单时,以<input type='hidden' value='hashout|timestamp'>方式并行输出方便提交时校对。
验证码显示时,以HASH为参,请求到服务器从KV中获取真实验证码并输出,在前端缓存减少运算量。


待解决:
1.重用性?
2.如何标记验证已使用过?(比如设置验证码过期为15分钟,以上算法的纰漏会导致在15分钟内无限使用同一验证码而通过)
2#
发表于 2012-8-25 10:31:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
3#
 楼主| 发表于 2012-8-25 10:32:46 | 只看该作者
单手摘月 发表于 2012-8-25 10:31
想用在哪?

注册、发言的地方
4#
发表于 2012-8-25 10:34:01 | 只看该作者
来看楼主人品
5#
发表于 2012-8-25 10:34:20 | 只看该作者
懒人 懒得分析逻辑。
6#
发表于 2012-8-25 10:37:40 来自手机 | 只看该作者
上传一张yzm作为验证码。
7#
 楼主| 发表于 2012-8-25 10:42:08 | 只看该作者
Chen 发表于 2012-8-25 10:34
来看楼主人品

狗滚开吧,老子不想理你。
骂人都不敢承认的SB,拉黑了就到处喷。

看你发帖,原来是你这几天很缺钱,想要钱了是吧?
如果你没骂我,我肯定会给你钱的,但你惹我在先,直接拉黑是必需的。
8#
发表于 2012-8-25 10:45:39 | 只看该作者
360安全卫士 发表于 2012-8-25 10:42
狗滚开吧,老子不想理你。
骂人都不敢承认的SB,拉黑了就到处喷。

谁先惹谁~~ 是你先不厚道的 亲~
9#
发表于 2012-8-25 10:46:22 | 只看该作者
是个男人就说到做到。

争议区可有帖子哦~~
10#
发表于 2012-8-25 10:47:14 | 只看该作者
你这是为什么这么做呢
session 加图片不就好了嘛。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-25 10:14 , Processed in 0.065375 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表