gpt4 book ai didi

python-3.x - 如何在 Python 3 中填充字节序列?

转载 作者:行者123 更新时间:2023-12-02 17:25:19 25 4
gpt4 key购买 nike

我正在尝试加密 PDF 或可执行文件等文件,但我无法填充它。

我尝试用这种方法读取文件:

with('file', 'rb') as file_read:
line = file_read.read(n) --> n multple of 16
encrypt(line, key)

然后我将该行传递给我的 encrypt 函数,但是当我到达不是 16 的倍数的行时,我的程序崩溃了。

如何正确填充字节序列?

最佳答案

这是先前答案的简化(编辑)版本。


假设使用 line = f.read(N)(其中 N 是 block 大小)在循环中读取文件,直到 EOF。

1) 平凡的零填充;只需在 read 之后添加:

elen = len(line) % N
if elen:
line += bytes(N - elen)

零填充是最简单的,但也有缺点。


2) PKCS#7 填充,N < 256;在 read 之后添加它并确保循环将在之后退出:

if len(line) < N:
elen = 1 + (len(line) - 1) % N
line += bytes(elen for _ in range(elen))

请注意,从文件读取与从网络套接字读取不同。需要一个缓冲区来从网络读取固定长度的 block 。

关于python-3.x - 如何在 Python 3 中填充字节序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com