我有一个字节,我想把它转换成python中的字符串
以下是我要转换的字节:
b'\xfeD1\xc2B\xac\xf86Mx\xc1\x0e\xa4\xe2x\x0c,\xd4\x1a\xb1'
但我无法将其转换为普通字符
此外,我提供上述字节作为输入
我试过:
my_str = b'\xfeD1\xc2B\xac\xf86Mx\xc1\x0e\xa4\xe2x\x0c,\xd4\x1a\xb1'.decode()
print(my_str)
我得到的错误是:
Traceback (most recent call last):
File "E:/Mainproject.py", line 39, in <module>
my_str = b'\xfeD1\xc2B\xac\xf86Mx\xc1\x0e\xa4\xe2x\x0c,\xd4\x1a\xb1'.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte
编辑:1 这是我用来编码文本的代码。这里我尝试使用一些pn序列来加密输入的文本,得到的结果输出是一个字节。 现在我想创建另一个程序,将这个字节作为输入,并将其解码为纯文本
from pylfsr import LFSR
# The initial state
state = [0,0,0,1,0,1,0,1,0,1,1]
# The LFSR polynomial use a primitive polynomail to get maximum period length
poly = [2,2,3,4,2]
l = LFSR(fpoly=poly, initstate =state)
print(l)
message = input().encode()
ciphertext = b""
# generate all LFSR sequence
allseq = l.runFullCycle()
seq = ""
seq_index = 0
# Convert LFSR bits into a string
for x in allseq:
seq += str(x)
for counter in range(len(message)):
ran_seq = seq[seq_index: seq_index+8]
# Now encrypt by XOR convert to bytes and append to ciphertext
# print(type(message[counter]),message[counter],type(ran_seq),ran_seq,int(message[counter]^int(ran_seq)))
ciphertext += bytes([int(message[counter]) ^ int(ran_seq, 2)])
# print(ciphertext)
seq_index += 8 # Move sequence to Next byte
print(ciphertext)
decode
将bytes
转换为str
encode
将str
转换为bytes
您需要使用
latin1
编码,但这会导致如果这些字节是非拉丁字符,那么最终将使用Mojibake字符,这在您的情况下似乎是如此。你能说这是什么样的绳子吗编辑:您正在尝试解码加密的
ciphertext
并使您的文本返回未锁定状态,这是加密试图阻止的,要返回您的文本,您必须先解密,然后解码使用以下代码:相关问题 更多 >
编程相关推荐