Base64 编码开发者指南

你在 CSS 和 JWT token 中都会用到 Base64。你需要了解它的工作原理。

Base64 将二进制数据转换为文本字符串。它使用一个包含 64 个字符的字符集,包括 A-Z、a-z、0-9、+ 和 /。使用 = 符号进行填充。

Base64 是编码,而不是加密。切勿将其用于安全目的。

工作原理:

  • 将二进制数据分为 3 字节一组。
  • 将这些字节组分为四个 6 位(bit)的数据块。
  • 将每个数据块映射为一个字符。

常见用途:

  • 电子邮件附件。
  • HTML 和 CSS 中的图像。
  • JWT token。
  • API 响应。
  • Basic Auth 请求头。

代码示例: 使用 btoa 对字符串进行编码。 使用 atob 对字符串进行解码。 在 Node.js 中,使用 data.toString('base64')

Base64url 是专门为 URL 设计的特殊版本。它将 + 替换为 -,将 / 替换为 _,并去除了填充。在处理 JWT 时请使用此版本。

请记住以下事实:

  • 输出结果比原始数据大 33%。
  • 仅将其用于纯文本通道。
  • 在 URL 中使用 Base64url。

来源:https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh