Base64 编码允许的字符

2022-09-01 01:59:04

我使用Base64编码在Java中编码用户ID字段。

String abc = new String(Base64.encodeBase64("Actualuseridfield"));

我想知道上面的字符串 abc 是否包含字符“ , : 或不包含?

当 Base64 编码的字符串在 abc 中返回时,它是否会包含以下字符?

" <double quote> 
, <comma> 
: <colon>

答案 1

Base64 编码字符串中,您不会看到任何逗号、冒号或双引号。您将看到等号,因为它们用于填充结尾内容。


答案 2

如果您有适用于 Base64 的正确编码器,则不会看到特殊字符,除非:

[A-Z][a-z][0-9][+/] 和末尾的填充字符“=”,以指示零填充字节的数量

还有另一个可用的 Base64 字符集,它将 [+/] 替换为 [_-] 使编码 URL 安全。

但是,该规范允许包含任何其他字符。通常,Base64 编码的数据每 76 个字符包含一个换行符“\n”。在解码过程中,必须删除除上述字符以外的任何字符。填充字符表示为应用于 n*4 个输出字符而追加的零字节数。


推荐