我正在尝试使用Feistel网络构建一个加密方案。我的函数F输出一个整数,而我的原始明文是字符串。我正试图找到一种介质(二进制或十六进制(,这样我就可以在尝试将这些值异或在一起之前将它们转换为相同的操作数类型。
到目前为止,我已经尝试使用以下方法将字符串转换为二进制:
binary1 = ''.join(format(ord(i), '08b') for i in plaintext)
并将整数值转换为二进制:
binary2 = bin(integer_value)
在执行binary1 ^ binary2
时,我仍然会遇到操作数类型不同的错误。这可能吗?还是我应该试着用其他东西?
plaintext = 'hii'
binary1 = ''.join(format(ord(i), '08b') for i in plaintext)
int_val = 34
bin2 = int(bin(int_val)[2:])
binary1 = int(binary1)
print(binary1 ^ bin2)
输出:
11010000110100101198691