我是从Slideshare API资源管理器获取的,它正在运行:
64f43b4be73bc11a15142c1ef5dab1130c5064cb
从SHA1哈希下面的字符串
81LqkNkvy1391428643
但是当我在Rails中使用时:
Digest::SHA1.hexdigest("81LqkNkvy1391428643")
我明白了:
1ef520bb53227b9edf691d47da653f93d232e16e
我无法弄清楚为什么这不匹配。
根据Slideshare API链接
http://www.slideshare.net/developers/documentation
它清楚地说
hash: Set this to the SHA1 hash of the concatenation of the shared secret and the
timestamp (ts). i.e. SHA1 (sharedsecret + timestamp). The order of the terms
in the concatenation is important.
我以为我正确地遵循了说明。我也试过解密上面的SHA1字符串但到目前为止没有运气。
这可能是什么问题?
答案 0 :(得分:1)
来自API资源管理器的网址参数,共享密钥设置为81LqkNkvy
:
...&hash=80c887e839d79dc38248ed4cda4b6ad401f57305&ts=1391434954
在Ruby中:
sharedsecret = '81LqkNkvy'
timestamp = 1391434954
require 'digest'
Digest::SHA1.hexdigest(sharedsecret + timestamp.to_s)
#=> "80c887e839d79dc38248ed4cda4b6ad401f57305"
获取当前时间戳:
timestamp = Time.now.to_i
#=> 1391434369
请注意,哈希每秒都会更改。
答案 1 :(得分:0)
以毫秒为单位尝试时间戳?