网站制作加盟,北京公司网页设计,腾讯企业邮箱官网入口,广东建设网证件查询图片验证最常用在防恶意注册的场景#xff0c;但传统图片验证方法的缺点在于需在服务器端维护这些随机生成的验证码字符串#xff0c;所以实质上只是将恶意注册的影响从数据库转移到了内存#xff0c;维护这个内存资源仍然会带来一些麻烦#xff0c;包括定期清理#xff0… 图片验证最常用在防恶意注册的场景但传统图片验证方法的缺点在于需在服务器端维护这些随机生成的验证码字符串所以实质上只是将恶意注册的影响从数据库转移到了内存维护这个内存资源仍然会带来一些麻烦包括定期清理且仍要在一定程度上考虑防恶意获取验证码。 下面介绍一种无需在服务器端维护验证码字符串的方法。 我们假设服务器数据库用户表中的用户名字段的值必须是唯一的这很常见我们借助一个加密或者哈希算法这样每个用户名对应的加密字符串在统计上也可以认为是唯一的。当新用户申请注册的时候先提交这个用户名给服务器作有效性检查如果数据库中没有这个用户名则可注册这时再用这个加密或者哈希算法将这个可用的用户名加密返回这个加密的值的图像数据给客户端。因为客户端不知道加密密钥又不好破解加密算法所以只能老老实实按图像值输入 随后客户端进入正式注册阶段客户端将这个图像的对应字符串和刚才验证通过的用户名再次递交给服务器服务器再次用同样的算法加密这个用户名并将加密出的值和客户端传来的字符串相比较如果相同则向数据库提交注册。客户端也无法使用以前的验证数据来欺骗服务器因为验证数据必须包含用户名验证数据若有效则用户名必定已存在于数据库中这样是不可能插入成功的。 其实这个算法巧妙地借助了数据库某个字段值唯一性的特点巧妙地复用了数据库的功能。 优点无需维护Session对于服务器系统越少维护这样的“全局变量”越利于减少出错几率。 缺点可能没测过很有可能不是缺点加密算法消耗的CPU时间要高于字典、hash算法Session是需要通过字典或者hash算法获取数据的 只讲原理 转载于:https://www.cnblogs.com/WYB/archive/2008/07/01/1232785.html