【发布时间】:2016-02-20 22:38:31
【问题描述】:
下面的编码有问题
import hashlib
import hmac
base_string = "&https%3A%2F%2Fsecure.trademe.co.nz%2FOauth%2FRequestToken&oauth_callback%3Dhttp%253A%252F%252Fwww.website-tm-access.co.nz%252Ftrademe-callback%26oauth_consumer_key%3DC74CD73FDBE37D29BDD21BAB54BC70E422%26oauth_nonce%3D7O3kEe%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1285532322%26oauth_version%3D1.0%26scope%3DMyTradeMeRead%252CMyTradeMeWrite".encode()
KEY = b"3B61C8A3FF9F1F6C0DBE436F9B507E08EF&"
result = hmac.new(KEY, base_string, hashlib.sha256).hexdigest()
print(result)
OUTPUT:
2d60b698a7d5fb318068b13c8f1bdfb99d241e0d2b4a669c337f84aa694f82dc
我正在尝试遵循这个:
这是我们最终的基本字符串:
POST&https%3A%2F%2Fsecure.trademe.co.nz%2FOauth%2FRequestToken&oauth_callback%3Dhttp%253A%252F%252Fwww.website-tm-access.co.nz%252Ftrademe-callback%26oauth_consumer_key%3DC74CD73FDBE37D29BDD21BAB54BC70E422%26oauth_nonce%3D7O3kEe%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1285532322%26oauth_version%3D1.0%26scope%3DMyTradeMeRead%252CMyTradeMeWrite要生成签名,我们需要使用 HMAC-SHA1 来加密 带有我们的消费者秘密和访问令牌秘密的基本字符串。正如我们所做的那样 还没有访问令牌,我们只需使用 消费者机密,后跟 & 符号(这是关键)。
3B61C8A3FF9F1F6C0DBE436F9B507E08EF&基本字符串和密钥都应使用以下方法转换为二进制 UTF8 编码。生成结果 MAC 后,应该是 使用标准 base-64 编码转换回文本形式。在 在这个例子中,我们得到以下字符串,它成为我们的签名 为这个请求。
5s3+el078a5AXGi43FBDyfg5yWY=
【问题讨论】: