Arrays 转换成二进制

Arrays 转换成二进制,arrays,python-3.x,hmac,Arrays,Python 3.x,Hmac,要使用HMAC功能,请执行以下操作: hmac.digest(key, msg, digest) 密钥和消息需要以字节或bytearray对象为单位。键和消息输入通常是一个字符串。我找不到一种方法可以轻松地直接从字符串转换为bytes/bytearray对象。似乎首先需要将其转换为整数,然后再从整数转换为字节对象bin(foo)-->str 仅转换为二进制表示形式。然而,bin(input)的输出仍然是HMAC函数不接受的字符串。第一个奖是找到一个函数,它可以将我的msg或key(strin

要使用HMAC功能,请执行以下操作:

hmac.digest(key, msg, digest)
密钥和消息需要以字节或bytearray对象为单位。键和消息输入通常是一个字符串。我找不到一种方法可以轻松地直接从字符串转换为bytes/bytearray对象。似乎首先需要将其转换为整数,然后再从整数转换为字节对象<代码>bin(foo)-->str
仅转换为二进制表示形式。然而,bin(input)的输出仍然是HMAC函数不接受的字符串。第一个奖是找到一个函数,它可以将我的msg或key(string)直接转换为byte数组或bytes对象,如果不是这样做的话?

你可以通过调用字符串的encode方法来获得字符串的bytes对象。您可以为它提供编码类型,也可以将其留空,它将使用默认编码

导入hmac
导入hashlib
key=“秘密密钥”
message=“这是一条秘密消息”
digest=hmac.digest(key.encode()、message.encode()、hashlib.sha3_256)
印刷品(摘要)
输出

b'\xdb3\xdd\xa3\xc48\xbe%"\x97;\xbf\x90\x84E\xd4\x9e\x89g\x12\x0f\'h\xc1\xc4\x95Si\x90A\xbf\xbc'
你可以在这里了解更多。摘录如下

以字节对象的形式返回字符串的编码版本。违约 编码为“utf-8”。可能会给出错误以设置不同的错误 处理方案