base64编码是否总是一对一

Is base64 encoding always one to one

Base64编码算法的两个不同输入是否可以得到两个相同的编码值?

让我们使用另一种算法,例如,将下划线替换为字母 X 的函数。

Foo_Bar = FooXBar
FooXBar = FooXBar

Base64 编码会发生这种事情吗?

不,base64 只是一种将二进制数据编码为可打印字符的方法。

严格来说,它只是一种数字系统,例如二进制(以 2 为底)、十进制(以 10 为底)或十六进制(以 16 为底)。正如你可以使用 base 64 进行无损转换一样。事实上,数学上的 bases 是无关紧要的,仅用于符号和人类使用,无论你使用什么 bases,数学都是等价的。

不,这不可能发生。 Base64 是一种无损转换(甚至还需要 33% space)。在数学术语中,Base64 函数是 bijection.

请注意 HTTP basic access authentication 如何将此编码用于用户名和密码。任何人都可以从编码后的字符串中获取原始字符串,因此这种身份验证只能在 HTTPS 下使用。

您还可以在 Wikipedia.

上找到有关 Base64 的更多详细信息