Base64 编码解码工具

将文本转换为 Base64,或将 Base64 解码回文本。正确处理重音字符和 Unicode。

Base64 是什么

Base64 是一种仅使用 64 个安全字符、字母、数字和几个符号来表示二进制或文本数据的方法。它不是加密,也不提供安全性;它是一种编码,可让数据安全地通过仅处理文本的系统,例如电子邮件、JSON 负载、数据 URL 和 HTTP 标头。该工具将文本转换为 Base64 并将 Base64 解码回可读文本。

当你需要 Base64 时

开发人员不断遇到 Base64。电子邮件附件采用 Base64 编码,因此二进制文件可以在纯文本邮件传输中保存。小图像作为 Base64 数据 URL 直接嵌入 CSS 或 HTML 中以保存请求。基本身份验证标头携带 Base64 编码的凭据。 JSON Web 令牌使用 Base64 作为其段。当您需要检查或创建其中任何一个时,手动编码和解码是不切实际的,这个工具可以立即完成。

Unicode 处理正确

Base64 工具的一个常见错误是损坏重音字符或非拉丁字符,因为朴素编码假定纯 ASCII。该工具首先通过 UTF-8 进行编码,因此来自任何语言的重音字母、表情符号和字符在往返过程中都完好无损。您可以在任何脚本中对“café”或文本进行编码,然后将其完全按原样解码回来。

Base64不是加密

值得强调的是:Base64 是可逆的,并且不提供任何保护。任何人都可以在一秒钟内对其进行解码,包括使用此工具。切勿使用 Base64 来隐藏密码或敏感数据,认为它是安全的。它纯粹是一种传输编码,可用于使数据文本安全,而不是保密。为了真正的安全,你需要真正的加密,这是完全不同的事情。

Base64 编码的工作原理

Base64 采用二进制数据并使用 64 个可打印字符(A 到 Z、a 到 z、0 到 9、加号和斜杠)表示它,并使用等号作为填充。输入的每三个字节变成四个 Base64 字符,这就是编码数据比原始数据大大约三分之一的原因。这种扩展是为了使任何数据能够安全地嵌入纯文本上下文中而做出的权衡。解码正好反转该过程,恢复原始字节。

数据 URL 和嵌入图像

Base64 的一种日常用途是数据 URL,它将一个小文件直接嵌入 HTML 或 CSS,而不是链接到它。编码为 Base64 数据 URL 的小图标随页面一起加载,而不需要单独的请求,这可以加快小型资源的渲染速度。开发人员粘贴图像数据,对其进行编码,然后将结果放入 src 属性中。对于较大的文件,尺寸损失大于好处,但对于小图标和内联 SVG,这是一种常见的技术。

令牌、电子邮件和 API 中的 Base64

Base64 出现在整个 Web 开发过程中。 JSON Web 令牌以 Base64 对其标头和有效负载段进行编码,以便它们在标头和 URL 中安全传输。电子邮件附件采用 Base64 编码,因此二进制文件可以在基于文本的邮件传输中保存下来。 HTTP 基本身份验证以 Base64 格式对凭据进行编码。 API 有时接受或返回 JSON 内的 Base64 编码的二进制数据。当您需要检查或构建其中任何一个时,该工具会立即编码和解码,正确处理 Unicode,因此不会损坏任何内容。

常见问题

Base64 是一种加密形式吗?
不。Base64 是一种编码,而不是加密。任何人都可以轻松逆转它,并且不提供任何安全性。使用它使数据文本安全传输,而不是保护或隐藏敏感信息。
它可以处理重音字符和表情符号吗?
是的。该工具通过 UTF-8 进行编码,因此任何语言的重音字母、表情符号和字符都可以完好无损地进行编码和解码。许多更简单的工具会破坏这些字符;这个没有。
为什么需要解码 Base64?
检查使用它的内容、电子邮件附件、数据 URL、基本身份验证标头或 JSON Web 令牌的片段。解码将安全传输字符串恢复为可读文本或数据。
无效的 Base64 错误意味着什么?
这意味着输入不是有效的 Base64,通常是因为它包含 Base64 字母表之外的字符或填充错误。检查您是否粘贴了完整的字符串,没有多余的空格或换行符。
我的数据上传了吗?
不会。编码和解码完全在您的浏览器中进行。您的数据永远不会离开您的设备,因此即使您不会上传的内容也是安全的。
为什么Base64数据比原始数据大?
Base64 将每三个字节表示为四个字符,因此编码输出大约比输入大 33%。这种大小的增加是使二进制数据安全地作为文本传输的成本。
什么是 Base64 数据 URL?
这是一种使用 Base64 编码将文件内容直接嵌入 HTML 或 CSS 的方法,因此小图像或图标会随页面一起加载,而不是作为单独的请求。它对于小型资产最有用。
我可以用这个解码 JWT 吗?
您可以解码 JSON Web 令牌的 Base64 段以读取其标头和负载。请注意,这仅进行解码,不会验证令牌的签名,这需要密钥。
它会破坏重音字符或表情符号吗?
不会。该工具通过 UTF-8 进行编码,因此重音字母、表情符号和任何语言文本都可以完好无损地进行编码和解码,这与采用纯 ASCII 的简单工具不同。