在Python中向文件写入和从文件中检索字节

2024-04-25 19:29:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python编写一个加密程序,它获取一个包含文本的文件,运行它的加密方案,并将加密的文本输出到一个文件中。我还必须附加IV和salt,我用于文件解密稍后。在

我有两个问题,首先,我把IV写入文件,然后是salt,然后是加密密钥,然后是密文。但文件如下:

b'\xcc\xc0\x0bL\x85\x04\x11:8\xce\xd6H\x1d^\xf5U'b'\xd6!\xe6\xd2Y\x17\x7f;\xc3\xea
\xd2Wj\xc3Q\xed'b'+\x90\x87Z\xde\x87\x1c8\xfdDl_\x8f\x8e\xbc\x97&4\xc6\r\xfa\xe0
\x1b\x98\x949\xd2\x10\x13\xdfb@'b'\xb2\xd4\x96\xb7D^\xf08\xa0\xa3\xba\x95\x89\r\xc3h'

这不是我想要的,因为你仍然可以看到b'xxx'b'yyy'的符号,这并不好,因为它提供了文件结构的线索。我怎样才能绕过这个问题,在文件中写几个16字节的密钥,然后写任意数量字节的密码文本。在

我的第二个问题。当我试图从加密文件中读入时,它的内容是:

^{pr2}$

所以它就像读取b''符号,并用更多的b''符号包装它,这就把我对字节的读入远远抛到一边。在

要写入文件,我使用如下打印语句:

with open('file.encr', 'w') as f:
    print(decrypt_iv, file=f, end="")
    print(salt, file=f, end="")
    print(key, file=f, end="")
    print(encrypt_iv, file=f, end="")
    print(ciphertext, file=f, end="")

我不知道这是否会导致问题,我应该使用write()?在


Tags: 文件文本程序字节密钥方案符号file
1条回答
网友
1楼 · 发布于 2024-04-25 19:29:57

这个问题是因为我使用了print函数将字节打印到文件中。在

with open('file.enc', 'wb') as f:
    f.write(iv)
    f.write(salt)
    f.write(key)

以及:

^{pr2}$

数据传输成功。在

相关问题 更多 >