我如何使用此功能:
def generate_sig(endpoint, params, secret):
sig = endpoint
for key in sorted(params.keys()):
sig += '|%s=%s' % (key, params[key])
return hmac.new(secret, sig, sha256).hexdigest()
使用以下参数:
endpoint = '/media/657988443280050001_25025320'
params = {
'access_token': 'fb2e77d.47a0479900504cb3ab4a1f626d174d2d',
'count': 10,
}
secret = '6dc1787668c64c939929c17683d7cb74'
在Python 3中?现在我收到了这个错误:
TypeError: key: expected bytes or bytearray, but got 'str'
答案 0 :(得分:0)
为我工作:
def generate_sig(endpoint, params, secret):
sig = endpoint
for key in sorted(params.keys()):
sig += '|%s=%s' % (key, params[key])
return hmac.new(bytes(secret,encoding='ascii'),
bytes(sig,encoding='ascii'),
sha256).hexdigest()
通过这种方式,您只能像 bytes 一样进行编码,以获取哈希值。