关于电信短信网关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 得到”是什么意思 网关那边的人压根不知道这个 麻烦做过的大侠告知一二 谢谢了
...全文
219 点赞 收藏 9
写回复
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加密过的内容 也看不出什么来啊
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告