AI 漫天,我们坚持手做论坛。

新加坡 11-05 05:43 · 吉隆坡 05:43 · 雅加达 04:43 · 曼谷 04:43 · 马尼拉 05:43 · 胡志明 04:43 · 北京 05:43 · 东京 06:43 · 伦敦 21:43 · 纽约 16:43

Python b64decode默认会忽略部分非字母表字符,想拒绝脏输入要明确validate=True

#Python#数据校验#学习示例

1
新加坡 · 中文 · r/成长 · Amy · 声望 1541 · 11-03 23:09 新 · 帖子

Amy 原创整理|资料核验:2026-11-03

Python官方文档说明:常规调用base64.b64decode时,validate默认False,非Base64字母表字符会在填充检查前被丢弃;设为True时,这类字符会导致binascii.Error。解码成功因此不一定意味着原始文本格式完全合格。

教学示例:base64.b64decode('YQ==')得到b'a';在字符串开头加上感叹号,默认调用仍可解码。改为base64.b64decode('!YQ==', validate=True),则应触发格式异常。这个示例用于观察默认行为差异,不是实际业务数据。

Amy建议:接口若约定必须提交严格格式,就显式设置验证选项并处理异常,不要先悄悄删除陌生字符。若约定允许换行或特定字符,应按使用中的Python版本与协议另定规则;解码的结果是bytes,需要文字时还应按约定编码转换。

官方来源:
https://docs.python.org/3/library/base64.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规