Base64 エンコード
無料オンラインBase64エンコード・デコードツール。UTF-8/ASCII/ISO-8859-1文字セットに対応し、Standard/URL-Safe/MIMEの3種類のバリアントをサポート。リアルタイムでボリューム増加率を表示し、MIMEの改行はRFC 2045規格に準拠しています。
無料オンラインBase64エンコード・デコードツール。UTF-8/ASCII/ISO-8859-1文字セットに対応し、Standard/URL-Safe/MIMEの3種類のバリアントをサポート。リアルタイムでボリューム増加率を表示し、MIMEの改行はRFC 2045規格に準拠しています。
いいえ。Base64はテキストを別の可逆的表現形式に変換するだけで、誰でも簡単に元のテキストにデコードできます。機密データ(パスワード、Token)を扱う場合は、AESなどの真の暗号化方式を使用してください。Base64はデータ形式の変換に適しており、テキストシステムでバイナリデータを転送しやすくするためのものです。
AES暗号化ツールBase64エンコードにより、元のデータのボリュームは約33%増加します。これは3バイト(24ビット)ごとに4つのBase64文字にエンコードされるためです。例えば100バイトのテキストはエンコード後に約133バイトになります。ツールの下部にリアルタイムで増加率が表示され、データサイズを評価できます。例:`Hello` → `SGVsbG8=`(ボリューム+33%)。
Base64統計ツールStandardは標準のBase64で、A-Z、a-z、0-9、+、/の文字を使用します。URL-Safeは+/を-_に置き換え、URLパラメータやJWT Tokenに適しています。MIMEは76文字ごとに改行を挿入し、RFC 2045のメール転送規格に準拠しており、メールの添付ファイルや複数行テキストに適しています。
URL-Safe Base64MIME Base64JWTはBase64URLエンコード(URL-Safeバリアント)を使用しています。URL-Safeモードを選択した後、JWTの最初のセグメント(header)または2番目のセグメント(payload)を貼り付けるだけでデコードできます。JWTの3番目のセグメントは署名であり、デコードして検証すべきではないことに注意してください。
JWTツールBase64エンコード結果の長さは4の倍数である必要があります。入力の長さが3の倍数でない場合、=文字で埋められます。URL-Safeバリアントではpaddingを使用しません。ツールはpaddingを自動的に処理し、デコード時には=文字を自動的に除去します。
Base64 PaddingツールbtoaとatobはブラウザネイティブのAPIで、Latin-1(ISO-8859-1)文字セットを操作し、各文字は1バイトです。日本語の文字はUTF-8では3バイトを占めるため、直接渡すとエラーが発生します。解決方法は、最初にencodeURIComponentで日本語をUTF-8バイトシーケンスの%xx形式に変換し、次にunescapeでLatin-1文字列に変換してから、btoaでエンコードすることです。
Data URIはデータを直接URLに埋め込むためのURI形式で、構文は次のとおりです:`data:[<mediatype>][;base64],<data>`。例えば`data:image/png;base64,iVBORw0KGgo...`のように使用します。小さなアイコンやCSS背景画像などを埋め込んでHTTPリクエスト数を減らすのによく使われます。ただしBase64ではボリュームが33%増加するため、小さなファイルにのみ適しており、大きなファイルは通常のURLを使用する必要があります。
Data URIツールBase64を画像に変換Base64は64個の印刷可能なASCII文字に基づくバイナリからテキストへのエンコード方式で、RFC 2045(MIME規格)によって初めて定義されました。Base64は3バイト(24ビット)ごとに4つのBase64文字(A-Z、a-z、0-9、+、/)に変換し、バイナリデータをHTTPヘッダー、JSONペイロード、XMLドキュメント、URLクエリパラメータなどのテキストのみをサポートするシステムで安全に転送できるようにします。
**Base64は暗号化ではありません**。データ形式の変換のみを提供し、誰でも簡単にデコードできます。機密データを保護する必要がある場合は、AESなどの真の暗号化方式を使用してください。Base64の主な用途には、HTTP Basic Authentication(`Authorization: Basic dXNlcjpwYXNz`)、JWT Tokenのheaderとpayloadセグメント(Base64URL形式)、Data URI(`data:image/png;base64,...`)、メール添付のMIMEエンコードなどがあります。
**URL-Safe Base64**(RFC 4648 §5)は、標準Base64の+/を-_に置き換え、通常はpaddingの=を省略します。これにより、エンコード結果をURL、ファイルパス、JSONフィールドに安全に含めることができます。JWT Token、OAuth PKCEのcode_verifier、AWS Signature V4はすべてURL-Safe Base64エンコードを使用しています。
**MIME折り返し**はRFC 2045で規定された1行あたり76文字を超えない規格です。Base64コンテンツが電子メールや特定の改行表示が必要なシナリオで使用される場合、MIMEバリアントは76文字ごとに改行文字(`\n`)を自動的に挿入します。これは電子メールの添付ファイル転送の標準形式です。
このツールはブラウザネイティブの**btoa/atob API**を使用し、UTF-8安全な処理ロジックと組み合わせて、日本語、中国語、emojiなどのマルチバイト文字が正しくエンコードされることを保証します。すべての計算はローカルで完了し、データはいかなるサーバーにも送信されません。ブラウザの開発者ツールのネットワークパネルを開くと、外部リクエストが一切ないことを確認できます。
| 機能 | Standard | URL-Safe | MIME |
|---|---|---|---|
| 特殊文字 | + / | - _ | + / |
| Padding(=) | 使用 | 通常省略 | 使用 |
| 改行 | なし | なし | 76文字ごとに改行 |
| 標準規格 | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| 主な用途 | Data URI、汎用エンコード | JWT、URLパラメータ、ファイル名 | メール添付、SMTP転送 |
| エンコード方式 | 文字数 | 文字セットの特徴 | ボリューム増加 | 主な用途 |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | デバッグ、ハッシュ表示 |
Base32 | 32 | A-Z, 2-7(大文字で混同しにくい) | 60% | DNS、TOTPキー、QRコード |
Base58 | 58 | 混同しやすい文字0/O/I/lを除外 | 38% | ビットコインアドレス、暗号通貨 |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | URL短縮、IDエンコード |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI、MIME、JWT(URL-Safeバリアント) |
// 编码(支持 UTF-8 中文)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// 解码(支持 UTF-8 中文)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界import base64
# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode()) # SGVsbG8g5LiW55WM
# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello 世界
# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode()) # SGVsbG8g5LiW55WM(无 padding 需手动去除)
# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello 世界";
// Standard 编码
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded); // SGVsbG8g5LiW55WM
// Standard 解码
String decoded = new String(
Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
System.out.println(decoded); // Hello 世界
// URL-Safe 编码(用于 JWT / URL)
String urlSafe = Base64.getUrlEncoder().withoutPadding()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(urlSafe);
// MIME 编码(76字符换行)
String mime = Base64.getMimeEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
}