Python3 中的 HMAC-SHA1 'bytes'对象没有属性'encode'



正如在这个答案中所描述的,我已经实现了HMAC-SHA1签名方法。

def sign_request():
from hashlib import sha1
import hmac
key = b"CONSUMER_SECRET&"  
basestr = b"BASE_STRING"
hashed = hmac.new(key, basestr, sha1)
return hashed.digest().encode("base64").rstrip('n')

但我有AttributeError'bytes' object has no attribute 'encode'。据我所知,这就是我使用Python3的原因,但我不知道如何修复它

这是因为它是一个字节,您正试图像字符串一样进行编码。我修复了它:

from base64 import encodebytes
def sign_request():
from hashlib import sha1
import hmac
key = b"CONSUMER_SECRET&"  
basestr = b"BASE_STRING"
hashed = hmac.new(key, basestr, sha1)
return str(encodebytes(hashed.digest())).rstrip('n')
print(sign_request())

最新更新