编码工具

Base64 密钥生成器

生成 Base64 编码的安全密钥,体积紧凑、易于传输,适合 API、认证令牌与配置文件。

Base64 密钥

32 字节 → 0 字符(Base64URL)

256 位
配置
32 字节
8 字节64 字节128 字节
Base64 输出:43 字符
Base64URL 输出:42 字符

什么是 Base64 密钥?

Base64 密钥是在随机二进制数据基础上用 Base64 编码得到的文本密钥。Base64 使用 64 个可打印字符(A-Z、a-z、0-9、+、/)将二进制转为 ASCII 文本,便于在 URL、JSON、XML 等文本格式中使用。

我们的 Base64 生成器先生成加密级随机密钥,再进行 Base64 编码,兼顾安全性与可移植性。常见用途包括 API Key、Bearer Token、Session 标识与配置文件中的加密密钥。

为什么用 Base64 编码密钥?

URL 友好

Base64 可安全嵌入 URL 与查询参数。需要更好兼容时可选 Base64URL。

更紧凑

相比 Hex 更短(约小 25%)。32 字节密钥 Base64 为 44 字符,Hex 为 64 字符。

文本安全

可直接写入 JSON、YAML、环境变量与配置库,无需转义。

通用支持

几乎所有语言都内置 Base64 编码解码支持。

常见 Base64 使用场景

  • Bearer Token: OAuth 2.0 与多种认证系统会把 Base64 密钥作为 Authorization Bearer。
  • 环境变量: 在 .env 或环境变量中使用 Base64 密钥无需处理特殊字符。
  • JWT 密钥: 不少 JWT 库使用 Base64 密钥进行 HMAC 签名(HS256/384/512)。
  • 配置文件: 可直接写入 JSON、YAML、XML 配置文件。
  • 数据库字段: 可作为 TEXT 存储,无需 BLOB/BINARY 列。

如何使用 Base64 密钥生成器

  1. 1
    选择字节长度 常见选择:16 字节(22 字符)、24 字节(32 字符)、32 字节(44 字符)、48 字节(64 字符)。
  2. 2
    生成 Base64 密钥 自动进行 Base64 编码,随机性由加密级随机数保证。
  3. 3
    复制并使用 URL 场景建议使用 Base64URL(+ 替换为 -,/ 替换为 _,去掉 =)。

Base64 密钥使用示例

以下演示不同语言中如何生成、编码与解码 Base64:

Node.js 示例

const crypto = require('crypto');

// Generate Base64 secret
const secret = crypto.randomBytes(32).toString('base64');
console.log('Base64 secret:', secret);

// Generate Base64URL secret (URL-safe)
const urlSafeSecret = crypto.randomBytes(32)
  .toString('base64')
  .replace(/\+/g, '-')
  .replace(/\//g, '_')
  .replace(/=/g, '');
console.log('Base64URL secret:', urlSafeSecret);

// Decode Base64 secret
const decoded = Buffer.from(secret, 'base64');
console.log('Decoded bytes:', decoded.length);

Python 示例

import base64
import secrets

# Generate Base64 secret
secret_bytes = secrets.token_bytes(32)
secret = base64.b64encode(secret_bytes).decode('utf-8')
print(f'Base64 secret: {secret}')

# Generate Base64URL secret
url_safe_secret = base64.urlsafe_b64encode(secret_bytes).decode('utf-8').rstrip('=')
print(f'Base64URL secret: {url_safe_secret}')

# Decode Base64 secret
decoded = base64.b64decode(secret)
print(f'Decoded bytes: {len(decoded)}')

Base64 vs Base64URL 对比

特性Base64Base64URL
第 62 个字符+-
第 63 个字符/_
补位符使用 =不需要
URL 安全否(需编码)
适用场景通用、配置URL、JWT、文件名

Base64 密钥最佳实践

  • 保证随机性: 编码前至少生成 16-32 字节随机数据。
  • 选择合适变体: URL 与 JWT 用 Base64URL;配置与通用存储用标准 Base64。
  • 无需频繁解码: 很多系统可直接使用 Base64 密钥,无需先解码。
  • 安全存储: Base64 只是编码不是加密,仍需安全存储(如环境变量)。
  • 校验格式: 接收 Base64 密钥时应验证格式合法。
  • 注意体积: Base64 体积约增加 33%,24 字节变为 32 字符。

Base64 密钥生成器常见问题

Base64 编码安全吗?

Base64 不是加密,只是表示方式。安全性取决于底层随机数据。我们的工具使用 Web Crypto API 生成随机数据后再编码。

该用 Base64 还是 Hex?

Base64 更紧凑,适合 URL 或 Token;Hex 更易读,适合调试。空间敏感场景选 Base64。

Base64 和 Base64URL 有什么区别?

Base64URL 将 + 改为 -,/ 改为 _,并去除 =,避免 URL 编码。JWT 与 URL 参数建议用 Base64URL。

Base64 可以还原吗?

可以。Base64 可逆,还原为原始字节。很多库直接接受 Base64 密钥,无需解码。

相关密钥生成器

资源入口

隐私与安全

所有 Base64 密钥均在浏览器本地生成,使用 Web Crypto API 的加密级随机数。不会上传或存储任何数据。