请教高手

tracy07056 2008-11-01 01:33:54
我只会编写一些简单的socket程序来实现客户端与服务器之间的数据传输,现在我要编写一个客户端软件,可以跟服务器之间进行接受和发送TCP数据包. 客户端软件要具有登陆功能与修改密码功能.


1.登陆时客户端与服务器之间采取挑战-应答双向认证
ClientRequest={UserID,log_time,CNonce}
ServerChallenge={SessionID,SNonse,HMAC(CNonce,password)}
ClientReponse={SessionID,HMAC(SNonce,password)}
ServerResponse={OK}
USERID:用户ID 十进制数 4位区号+6位序列号
log_time: 登陆时间 4字节
CNonse: 客户端随机产生的20字节随机数
SNonse: 服务器随即产生的20字节随机数
SessionID: 服务器随机产生的16字节会话ID
Password: 客户端在服务器预留的16位ASCII字符
HMAC: 采用SHA-1算法
消息包的格式是: 消息代码(2字节)+消息长度(2字节)+消息内容
客户端软件的处理流程是::取自己的USERID(假设为1234abcdef),取计算机时间,取20字节随机数,发给服务器软件从服务器软件里接受ServerChallenge消息,保存SessionID,提示用户输入密码,根据password计算HMAC(CNonce,password)-->计算HMAC是否等于收到的HMAC,如果不等,则警告并结束登陆,如果相等,则计算HMAC(password,SNonce),构造ClientResponse发回服务端,如果没有收到OK,则结束登陆,如果收到OK,则提示登陆成功。

2.修改密码:用户登陆成功后可以执行修改密码功能.软件提示用户连续两次输入新password,比较一致后,将password送到服务器端,服务器记下新的密码作为用户的密码.
修改密码的消息ChangePassword定义如下:ChangePassword={SessionID,newPassword,HMAC(newPassword,Password)}


我是菜鸟,但是老师逼的很紧,希望高手能给出代码或者是部分代码或者给点提示也行.上面要求我说的不够详细,如果谁有什么地方看不懂的,请留言.若您有兴趣研究这个,加我QQ503042936 并留下QQ 请各位赐教啊,不甚感激。谢谢谢谢大家啊
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_sharp 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zmlovelx 的回复:]
封装socket的C++类,客户端和服务器端通用 V1.0
用一个c++类搞定网络传输客户端和服务器端的所有细节,支持用户口令验证、多用户管理,具有很好的扩展性。
http://download.it168.com/248/267/40502/index.shtml
[/Quote]

下载不了
e_sharp 2008-11-01
  • 打赏
  • 举报
回复
UP
tracy07056 2008-11-01
  • 打赏
  • 举报
回复
您说的那个怎么用啊,我搞不来...您能帮我写下代码吗
hityct1 2008-11-01
  • 打赏
  • 举报
回复
源代码部分有密码,是什么?
liubuweiright 2008-11-01
  • 打赏
  • 举报
回复
帅得不敢出门 2008-11-01
  • 打赏
  • 举报
回复
封装socket的C++类,客户端和服务器端通用 V1.0
用一个c++类搞定网络传输客户端和服务器端的所有细节,支持用户口令验证、多用户管理,具有很好的扩展性。
http://download.it168.com/248/267/40502/index.shtml

太乙 2008-11-01
  • 打赏
  • 举报
回复
http://d.download.csdn.net/down/403559/hqin6
lzh9955 2008-11-01
  • 打赏
  • 举报
回复
up nb

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧