gpt4 book ai didi

base64 - 是否可以对文件进行分块进行 Base64 编码?

转载 作者:行者123 更新时间:2023-12-02 10:44:28 35 4
gpt4 key购买 nike

我正在尝试对一个巨大的输入文件进行base64编码并最终得到一个文本输出文件,并且我正在尝试找出是否可以对输入文件进行逐位编码,或者是否需要立即对整个内容进行编码。

如果有什么不同的话,这将在 AS/400 (iSeries) 上完成。我正在使用我自己的 base64 编码例程(用 RPG 编写),它运行得非常好,而且,如果不是大小限制的话,那就没问题了。

最佳答案

不可能逐位,但一次 3 个字节,或者一次 3 个字节的倍数就可以了!

换句话说,如果您将输入文件分割为大小为 3 字节倍数的“ block ”,则可以分别对这些 block 进行编码,然后将生成的 B64 编码片段拼凑在一起(在相应的当然,请注意,最后一个 chuink 的大小不必恰好是 3 字节的倍数,具体取决于其大小的模 3 值,其相应的 B64 值将具有一些这些填充字符(通常是等号)但这没关系,因为这将是唯一具有(并且需要)此类填充的部分。

在解码方向,思路是一样的,只是需要将B64编码的数据分割成4字节的倍数。根据需要并行/单独解码它们,并通过将解码的部分附加在一起(再次以相同的顺序)来重新拼凑原始数据。

示例:

"file"内容=“永远不要与数据争论。” (吉米·中子)
直接编码 = Ik5ldmVyIGFyZ3VlIHdpdGggdGhlIGRhdGEuIiAoSmltbXkgTmV1dHJvbik=

现在,分块:
“永远不要争论     -->     Ik5ldmVyIGFyZ3Vl
         -->        IHdpdGggdGhl
数据。”(吉米·中子) --> IGRhdGEuIiAoSmltbXkgTmV1dHJvbik=

正如您所看到的,按照该顺序,3 个编码 block 的数量与为整个文件生成的代码相同。

解码过程类似,只要 block 大小是 4 字节的倍数,则 block 大小任意。用于编码的大小之间绝对不需要有任何类型的对应关系。 (尽管将每个方向标准化为一种尺寸(例如 300 和 400)可能会使事情更加统一且更易于管理。

关于base64 - 是否可以对文件进行分块进行 Base64 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920780/

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