验证码到底怎么弄?
不知道你的程序是网络程序,还是单机程序。如果是本地程序的话,要验证码做什么?多此一举。如果是网络程序的话,请看下面:
以上的几个回答,从表面看是实现了验证码,但问题是都是本地生成,本地校验,与服务器无关,那也失败了验证码的实际功能,本地显示等问题是很容易做的。
验证码的功能是不仅仅要验证你的帐号和密码,还要验证服务器返回的一个随机数,注意:这个随机数是要服务器生成的,才能保证有效,为的就是验证别人无法用暴力破解你的网络帐号和密码。所以现在的问题就成了在程序中如果取得服务器返回的验证信息,在WEB中是图片,然而不管是在WEB中应用,还是在程序中应用,都不应该采用字符及明文传输验证信息。否则的话,客户端就可以自行处理了(WEB上传回来的就没有数字或字符验证信息,全是图片)。如果是图片的话,问题又转换成了,客户端程序如何取得服务器端的图片并显示(不通过WEB协议)。
实现起来确实有难度啊。就我个人的观点来说,可以按下面的思路解决:
客户端起动后先连接服务器端,客户端连接服务器时,生成一个随机数,保存在CSocket信息当中(服务器总是要继承CSocket或自定义一个socket类吧),然后向客户端发回和随机数相关的图片文件(注意是图片文件,而不是验证字符),客户端负责解析并显示该图片,客户端再向用户寻问帐号、密码和验证码,然后登录。
上面的流程才使验证码起到实际的做用。
以上的几个回答,从表面看是实现了验证码,但问题是都是本地生成,本地校验,与服务器无关,那也失败了验证码的实际功能,本地显示等问题是很容易做的。
验证码的功能是不仅仅要验证你的帐号和密码,还要验证服务器返回的一个随机数,注意:这个随机数是要服务器生成的,才能保证有效,为的就是验证别人无法用暴力破解你的网络帐号和密码。所以现在的问题就成了在程序中如果取得服务器返回的验证信息,在WEB中是图片,然而不管是在WEB中应用,还是在程序中应用,都不应该采用字符及明文传输验证信息。否则的话,客户端就可以自行处理了(WEB上传回来的就没有数字或字符验证信息,全是图片)。如果是图片的话,问题又转换成了,客户端程序如何取得服务器端的图片并显示(不通过WEB协议)。
实现起来确实有难度啊。就我个人的观点来说,可以按下面的思路解决:
客户端起动后先连接服务器端,客户端连接服务器时,生成一个随机数,保存在CSocket信息当中(服务器总是要继承CSocket或自定义一个socket类吧),然后向客户端发回和随机数相关的图片文件(注意是图片文件,而不是验证字符),客户端负责解析并显示该图片,客户端再向用户寻问帐号、密码和验证码,然后登录。
上面的流程才使验证码起到实际的做用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现