Base64 编码解码工具

未选择文件
info 勾选后解码时会自动过滤非Base64字符(A-Z, a-z, 0-9, +, /, =)
输入字符数 0
输出字符数 0
编码/解码状态 等待输入
成功解码字符数 0
过滤字符数 0
关于Base64
代码示例

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。它常用于在需要处理文本数据的场合,表示、传输、存储一些二进制数据。

Base64 的主要特点:

  • 使用64个字符(A-Z, a-z, 0-9, +, /)以及填充字符"="
  • 每3个字节的二进制数据可以编码为4个Base64字符
  • 如果数据不是3的倍数,会用"="进行填充
  • 编码后的数据比原始数据大约增加33%

常见应用场景:

  • 在XML、JSON等文本协议中嵌入二进制数据
  • 电子邮件中的MIME编码
  • 在URL、Cookie、网页中传输少量二进制数据
  • 数据加密或数字签名中

Base64编码不是加密,它只是一种编码方式,可以轻松地被解码。因此,它不应该被用于保护敏感信息。

JavaScript
Python
Java
C#
Go
PHP

JavaScript Base64 编码解码

// 编码
const encoded = btoa('Hello World');
console.log(encoded); // SGVsbG8gV29ybGQ=

// 解码
const decoded = atob('SGVsbG8gV29ybGQ=');
console.log(decoded); // Hello World

// 处理中文
const encodedChinese = btoa(unescape(encodeURIComponent('你好')));
const decodedChinese = decodeURIComponent(escape(atob(encodedChinese)));

Python Base64 编码解码

import base64

# 编码
text = "Hello World"
encoded = base64.b64encode(text.encode('utf-8')).decode('utf-8')
print(encoded)  # SGVsbG8gV29ybGQ=

# 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello World

# 文件编码
with open('file.txt', 'rb') as file:
    file_encoded = base64.b64encode(file.read()).decode('utf-8')

Java Base64 编码解码

import java.util.Base64;

// 编码
String text = "Hello World";
String encoded = Base64.getEncoder().encodeToString(text.getBytes());
System.out.println(encoded); // SGVsbG8gV29ybGQ=

// 解码
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes);
System.out.println(decoded); // Hello World

// URL安全的编码解码
String urlEncoded = Base64.getUrlEncoder().encodeToString(text.getBytes());
String urlDecoded = new String(Base64.getUrlDecoder().decode(urlEncoded));

C# Base64 编码解码

using System;
using System.Text;

// 编码
string text = "Hello World";
byte[] bytes = Encoding.UTF8.GetBytes(text);
string encoded = Convert.ToBase64String(bytes);
Console.WriteLine(encoded); // SGVsbG8gV29ybGQ=

// 解码
byte[] decodedBytes = Convert.FromBase64String(encoded);
string decoded = Encoding.UTF8.GetString(decodedBytes);
Console.WriteLine(decoded); // Hello World

// 处理URL安全的Base64
string urlSafe = encoded.Replace('+', '-').Replace('/', '_').Replace("=", "");

Go Base64 编码解码

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {
    // 编码
    text := "Hello World"
    encoded := base64.StdEncoding.EncodeToString([]byte(text))
    fmt.Println(encoded) // SGVsbG8gV29ybGQ=
    
    // 解码
    decoded, err := base64.StdEncoding.DecodeString(encoded)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(decoded)) // Hello World
    
    // URL编码
    urlEncoded := base64.URLEncoding.EncodeToString([]byte(text))
}

PHP Base64 编码解码

// 编码
$text = "Hello World";
$encoded = base64_encode($text);
echo $encoded; // SGVsbG8gV29ybGQ=

// 解码
$decoded = base64_decode($encoded);
echo $decoded; // Hello World

// URL安全的Base64
$urlSafe = strtr($encoded, '+/', '-_');
$urlSafe = rtrim($urlSafe, '=');
文本已复制到剪贴板