Base64 编码 / 解码
把文本或文件编码为 Base64,也能解码还原,支持 URL 安全字母表、可选填充和 MIME 换行。
把工具固定在这里,会保存在此浏览器中。
固定一个工具,它的贴纸就会出现在这里。
把文本或文件编码为 Base64,也能解码还原,支持 URL 安全字母表、可选填充和 MIME 换行。
Base64 用 64 个可打印的 ASCII 字符表示任意字节:A–Z、a–z、0–9、+ 和 /。每 3 个字节变成 4 个字符;输入长度不是 3 的倍数时,用 = 填充最后一组。它的定义见 RFC 4648。
它的用途是让二进制数据能通过为文本设计的通道传输:电子邮件附件、HTML 和 CSS 中的 data: URI、JSON 中的二进制字段、HTTP 的 Authorization: Basic 请求头,以及已签名 JWT 的三个部分。
Base64 是一种编码,不是加密。任何人都能解码,所以它什么也藏不住。
URL 安全字母表用 - 和 _ 代替 + 和 /,这样值可以直接放进 URL 或文件名,无需转义。JWT 使用这种字母表,并且还会去掉填充。
MIME(RFC 2045)把输出拆成每行最多 76 个字符。data URI 在数据前面加上媒体类型,例如 data:image/png;base64,…,使用的是标准字母表,而不是 URL 安全字母表。
解码时,此工具两种字母表都接受,也能处理缺少填充以及含有空格、制表符和换行的情况,并会跳过 data:…;base64, 前缀。如果有无效字符,它会指出是哪个字符以及所在位置。
Base64 编码的是字节,所以文本必须先转换成字节。此工具使用 UTF-8,这是如今大多数系统默认采用的编码。JavaScript 自带的 btoa() 只接受 U+00FF 以内的字符,遇到其他字符就会抛出异常,所以把 emoji 直接传给 btoa() 的代码会出错。像 é 这样的字母不会引发异常,但 btoa() 会把它编码成一个 Latin-1 字节,而不是 UTF-8 使用的两个字节。
解码后,工具会检查这些字节是否为不含控制字符的有效 UTF-8 文本。如果不是,它会给出提示,根据开头的字节识别 PNG、JPEG、GIF、WebP、PDF 和 ZIP 数据,并让你把这些字节下载为文件。你选择的文件由浏览器读取,不会离开你的设备。
不是。Base64 是一种可逆的编码,没有密钥,任何人都能解码。不要用它来保护密码、令牌或个人数据。
每个 Base64 字符只承载 6 位而不是 8 位,所以每 3 个字节需要 4 个字符。结果比原始数据大约多出三分之一,另外还要加上填充和换行。
base64url 是 RFC 4648 第 5 节定义的变体。它用 - 和 _ 代替 + 和 /,并且通常省略 = 填充,因此可以安全地用在 URL 和文件名中。数据本身相同,只有这几个字符不同。此工具两种都能解码。
不会。文件由你的浏览器读取,并在你的设备上完成编码,不会发送到服务器。
它会在独立窗口中打开,离线时也能使用。
要安装,请点按“分享”按钮,然后选择“添加到主屏幕”。