最近在爬取“马蜂窝”的 app 攻略部分,爬取不同城市的时候发现每次请求的时候需要加上不同的 oauth_signature, 也就是服务端和客户端验证的签名。
例如,得到的是“ oauth_signature=2Kj6MQi6oZ%2FkNPye4xYUGm%2BRD%2Bc%3D ”
URL 解码之后得到的是“ 2Kj6MQi6oZ/kNPye4xYUGm+RD+c=”
这个是使用的 HMAC-SHA1 方法,也就是 sha1,就是使用消息+类似密码的东西得到的
大致公式总结如下,
消息=未知
密码=''.join( [ oauth_timestamp,oauth_token,oauth_nonce ] .sort())->base64 编码
sha1 (消息+密码) = oauth_signature = “ oauth_signature ”
结果总是算不对,现在想问问可不可以直接去得到消息是什么,以及每次的 oauth_nonce 随机数怎么得到
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.