TypeError: a bytes-like object is required, not 'str' - hmac
TypeError: a bytes-like object is required, not 'str' - hmac
我看到这个错误:
TypeError: a bytes-like object is required, not 'str'
python3.6/base64.py", line 58, in b64encode encoded = binascii.b2a_base64(s, newline=False)`
代码如下:
import base64
import hmac
import hashlib
import binascii
....
def post(self,request):
body = str(request.body).encode()
sign_signature = base64.b64encode(hmac.new('tester'.encode(), body, hashlib.sha256).hexdigest())
将您的代码行替换为:
sign_signature = base64.b64encode(hmac.new('tester'.encode(), body, hashlib.sha256).digest())
digest
returns bytes
-> we want to b64encode it, and b64encode accepts bytes, so we're good.
我看到这个错误:
TypeError: a bytes-like object is required, not 'str'
python3.6/base64.py", line 58, in b64encode encoded = binascii.b2a_base64(s, newline=False)`
代码如下:
import base64
import hmac
import hashlib
import binascii
....
def post(self,request):
body = str(request.body).encode()
sign_signature = base64.b64encode(hmac.new('tester'.encode(), body, hashlib.sha256).hexdigest())
将您的代码行替换为:
sign_signature = base64.b64encode(hmac.new('tester'.encode(), body, hashlib.sha256).digest())
digest
returnsbytes
-> we want to b64encode it, and b64encode accepts bytes, so we're good.