我是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)
答案 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)
取决于您的用例。
将其转换为功能留给读者练习。