为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

largeQ 2023-03-08 15:04:13
正如这个答案中所描述的,我已经实现了 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 的原因,但我不知道如何修复它。
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

那是因为它是一个字节,而您正在尝试像字符串一样进行编码。我修好了它:


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())


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信