验证码到底怎么弄?

不知道你的程序是网络程序,还是单机程序。如果是本地程序的话,要验证码做什么?多此一举。如果是网络程序的话,请看下面:

以上的几个回答,从表面看是实现了验证码,但问题是都是本地生成,本地校验,与服务器无关,那也失败了验证码的实际功能,本地显示等问题是很容易做的。

验证码的功能是不仅仅要验证你的帐号和密码,还要验证服务器返回的一个随机数,注意:这个随机数是要服务器生成的,才能保证有效,为的就是验证别人无法用暴力破解你的网络帐号和密码。所以现在的问题就成了在程序中如果取得服务器返回的验证信息,在WEB中是图片,然而不管是在WEB中应用,还是在程序中应用,都不应该采用字符及明文传输验证信息。否则的话,客户端就可以自行处理了(WEB上传回来的就没有数字或字符验证信息,全是图片)。如果是图片的话,问题又转换成了,客户端程序如何取得服务器端的图片并显示(不通过WEB协议)。

实现起来确实有难度啊。就我个人的观点来说,可以按下面的思路解决:

客户端起动后先连接服务器端,客户端连接服务器时,生成一个随机数,保存在CSocket信息当中(服务器总是要继承CSocket或自定义一个socket类吧),然后向客户端发回和随机数相关的图片文件(注意是图片文件,而不是验证字符),客户端负责解析并显示该图片,客户端再向用户寻问帐号、密码和验证码,然后登录。

上面的流程才使验证码起到实际的做用。
 

转载于:https://www.cnblogs.com/liaocheng/p/4243512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值