Base64 填充错误:等号为什么重要,怎么修
看懂 Base64 末尾的等号、incorrect padding 报错和安全修复规则。
先看结论
Base64 按 4 个字符一组工作。最后一组缺字节时,编码器会用一个或两个等号补齐。复制时丢了等号,很多解码器就会报 padding 错误。
改之前先数长度
去掉空格和换行后,数一下字符数。长度除以 4 余 0,不用补。余 2,补 ==。余 3,补 =。余 1,先停下:一个 Base64 字符装不下一个完整字节,这串值多半缺内容,或用了错误字母表。
还要看字母表
填充只修长度。标准 Base64 用 + 和 /。Base64URL 用 - 和 _。JWT 片段、路由 token、文件名安全值,放进标准解码器时会像坏数据。只有上下文说明它是 Base64URL 时,才把 - 换成 +,把 _ 换成 /。
不要掩盖损坏
有些格式允许解码器忽略空白,但 RFC 4648 要求通用解码器拒绝字母表外的字符,除非协议另有说明。这个规则能避免静默改数据。长度规则能证明时才补等号,不要随手删字符来消除报错。
一个稳妥流程
第一步,从来源重新复制完整值。第二步,去掉换行空白。第三步,从场景判断标准 Base64 还是 Base64URL。第四步,按长度余数补等号。最后,解码并核对输出类型:文本、JSON、图片字节,或其他文件。