如何将代表n位的字符串转换为字节字符串?

时间:2019-10-26 23:37:54

标签: python-3.x

我是Python的新手(以前从未用这种语言编写过代码),我需要将字节字符串传递给函数(如此处指定[1])。它收到一个代表二进制数的字符串,我想从中生成一个字节字符串。我已经尝试了无数种方法,但是我真的对如何做很执着,请您能帮我吗?

我正在尝试将此值传递给处理DES的库,所以除了以这种方式进行操作外,我没有其他选择。

[1] https://www.dlitz.net/software/pycrypto/api/current/Crypto.Cipher.DES-module.html#new

from Crypto.Cipher import DES

key = "1101101110001000010000000000000100101000010000011000110100010100"

param = key.tobytes() # <-- The function I need

cipher = DES.new(key, DES.MODE_ECB)

1 个答案:

答案 0 :(得分:1)

您的密钥以当前形式为二进制数字。

您只需使用以下命令即可从中获取字节(仍作为字符串):

length = 8
input_l = [key[i:i+length] for i in range(0,len(key),length)]

然后将列表中的每个转换为整数:

input_b = [int(b,base=2) for b in input_l]

然后通过以下方式简单地给出字节数组:

bytearray(input_b)

bytes(input_b)

取决于您的用例。


将其转换为功能留给读者练习。