关于电信短信网关SMGP3.0协议的问题

_dw 2014-02-11 09:39:52
发送login包过去之后返回状态21 认证错
查看协议可能是下面这个字段出错

6.2.2 AuthenticatorClient
客户端认证码,用来鉴别客户端的合法性。
其值通过单向 MD5 hash 计算得出,表示如下:
AuthenticatorClient =MD5 ( ClientID+7 字 节 的 二 进 制 0 ( 0x00 ) + Shared
secret+Timestamp)
Shared secret 由服务器端与客户端事先商定,最长 15 字节。
此处 Timestamp 格式为:MMDDHHMMSS(月日时分秒),经 TimeStamp 字段值转换
成字符串,转换后右对齐,左补 0x30 得到。

对于该字段值的时间戳不是很明白 那句“转换后右对齐,左补 0x30 得到”是什么意思 网关那边的人压根不知道这个 麻烦做过的大侠告知一二 谢谢了
...全文
391 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZengWanQiu 2016-08-03
  • 打赏
  • 举报
回复
hello 楼主,你的问题解决了么?
赵4老师 2014-02-11
  • 打赏
  • 举报
回复
建议楼主先学会用抓包软件比如wireshark
_dw 2014-02-11
  • 打赏
  • 举报
回复
引用 3 楼 ForestDB 的回复:
format是对的。
大神做过?能否留个联系方式 我老返回21啊 堵这了
ForestDB 2014-02-11
  • 打赏
  • 举报
回复
format是对的。
_dw 2014-02-11
  • 打赏
  • 举报
回复
哦!我还没发现呢 那我这么对时间戳赋值 sprintf(timestamp, "%02d%02d%02d%02d%02d",time->tm_mon+1,time->tm_mday,time->tm_hour,time->tm_min,time->tm_sec); 你觉得对不?
buyong 2014-02-11
  • 打赏
  • 举报
回复
0x30 is the ascii code of 0
赵4老师 2014-02-11
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://topic.csdn.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html
ForestDB 2014-02-11
  • 打赏
  • 举报
回复
我指的是%02d%02d%02d%02d%02d是对的。
_dw 2014-02-11
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
建议楼主先学会用抓包软件比如wireshark
会用啊 不过抓到了也没用 MD5加密过的内容 也看不出什么来啊

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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