0

我得到一个 2 字节序列并要求对它进行 Base64 编码:

00000001 00010001

据我了解,在使用 Base64 时,您只能编码 6 位序列。所以因为 16 位不能被 6 整除,所以我有点卡住了。

我可以看到的解决方案是将给定的 2 字节序列转换为 3 字节序列,使其可被 6 整除。但是如何在不更改初始序列的值的情况下执行此操作?

4

1 回答 1

1

基本上,你用零填充它到下一个 6 位的倍数,然后用=s 填充最后的四个字符序列。由于最后两个零字节不构成完整的输入字节,解码器知道忽略它们。(=填充不是完全必要的,但习惯上使最终结果的长度始终为 4 个字符的倍数。)

例如,您得到的序列是:

00000001 00010001

将其分成 6 组,我们得到:

000000 010001 0001

用零填充:

000000 010001 000100

转换为 ASCII:

ARE

并把它垫出来:

ARE=
于 2013-01-21T06:14:07.463 回答