码迷,mamicode.com
首页 > 其他好文 > 详细

安全验证问题

时间:2015-03-12 11:00:52      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

安全问题

当APP向全媒体系统提交HTTP请求时, 必须 附带若干URL参数,作为验证依据。

全媒体系统在收到请求时,会进行验证,并拒未通过绝验证的请求。

参数

timestamp 时间戳 形如: 1407812629434 注释:Java中的获取方法 – Date().getTime()

signature 签名  签名由 APPID , APPSECRET , timestamp 计算得出

算法
APP应将 signature 参数填写为 SHA1 哈希值的16进制字符串表达式

[Math Processing Error]
以 Python 语言举例:

>>> from hashlib import sha1
>>> appid = b‘1001‘
>>> appsecret = b‘123456abcdef‘
>>> timestamp = b‘1407812629434‘
>>> signature = sha1(appid + appsecret + timestamp).hexdigest()
>>> print(signature)
b1d11d44bcb28caa6ce4dc1b7f1526ede00f49e0
此时,url形如:

http://api/v1.0/1001/staffService/message?timestamp=1407812629434&signature=b1d11d44bcb28caa6ce4dc1b7f1526ede00f49e0
APP的安全验证
全媒体系统向APP发送HTTP请求是,也会在URL的参数部分附带验证数据。APP可以根据这些参数进行验证。

参数 

 timestamp  时间戳  形如: 1407812629434

 signature 签名  签名由 APPID , ACCESSTOKEN , timestamp 计算得出

算法
全媒体系统将 signature 参数填写为 SHA1 哈希值的16进制字符串表达式

[Math Processing Error]
以 Python 语言举例:

>>> from hashlib import sha1
>>> appid = b‘1001‘
>>> accesstoken = b‘6c9hgd@%#^5evc75@53Z5‘
>>> timestamp = b‘1407812629434‘
>>> signature = sha1(appid + accesstoken + timestamp).hexdigest()
>>> print(signature)
04326e341d0ba7064975a9c03a75361f856d3341
此时,url形如:

http://apphost/staffService/message?timestamp=1407812629434&signature=04326e341d0ba7064975a9c03a75361f856d3341

安全验证问题

标签:

原文地址:http://www.cnblogs.com/fer-team/p/4331623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!