m moji kit v1.0.9
b64
エンコード

Base64 エンコード/デコード

テキストやバイト列を Base64 に変換、または逆変換します。UTF-8 (日本語など) と URL-safe Base64 (+ / を - _ に置換、= を省略) に対応。

サンプル

よく使う組み合わせ

→ JSON フォーマッタ Base64 → JSON 整形 次へ
URL エンコード/デコード → URL デコード → Base64 元へ
JSON フォーマッタ → JSON → Base64 元へ

こんなときに使う

Basic 認証ヘッダーを作る

username:password を UTF-8 でエンコードして Authorization: Basic ... ヘッダーに使います。簡易な API テスト時にすぐ作れて便利です。

echo -n 'admin:s3cret' | base64

メールに画像をインライン埋め込みする

data: URL(data:image/png;base64,...)として小さな画像を Base64 化し、HTML メールや CSS に直接埋め込みます。

data:image/png;base64,iVBORw0KGgoAAAANS...

Kubernetes Secret に書き込む値を作る

kubectl create secret generic で渡す値や、Secret マニフェストの data フィールドは Base64 でエンコードする必要があります。

stringData:
  password: mypass
# vs
data:
  password: bXlwYXNz

JWT のパーツを手動で確認する

JWT は header.payload.signature の 3 部に分かれ、各部分が Base64Url エンコードされています。URL-safe モードでデコードできます。

eyJhbGciOiJIUzI1NiJ9 → {"alg":"HS256"}

URL に小さなデータを埋め込む

クエリパラメータに JSON を載せたいときなど、URL-safe Base64 を使うと % エスケープなしで安全に埋め込めます。

?data=eyJpZCI6MX0

古い API のバイナリ転送をデコードする

PDF・画像・ZIP などのバイナリを Base64 で受け取った場合、内容を確認するためにデコードしてダウンロードできます。

よくあるエラーと対処

ERR Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded
原因
Base64 として無効な文字が含まれています。空白・改行や、URL-safe 用の - / _ をそのままで処理しようとしている等のケースです。
対処
URL-safe チェックを有効にするか、入力から空白・改行を除去してください。本ツールは URL-safe を自動判定します。
ERR デコード結果が文字化けする
原因
UTF-8 ではない別の文字コード(Shift_JIS 等)でエンコードされた Base64 を UTF-8 として解釈しています。
対処
元データの文字コードを確認し、別途文字コード変換を行ってください。
ERR パディング = が抜けているとデコードできない
原因
標準 Base64 は 4 文字単位なのでパディング = が必要です。URL-safe では省略可能ですが、標準デコーダでは補う必要があります。
対処
本ツールは = を自動補完します。他のツールで詰まったら長さが 4 の倍数になるよう = を末尾に足してください。
ERR 改行が含まれて 1 行扱いされない
原因
MIME 形式(76 文字ごとの改行)の Base64 を貼った場合、ツールによっては失敗することがあります。
対処
本ツールは改行を自動的に除去します。他のツールでも空白・改行除去のオプションがあれば有効化してください。

CLI / 他言語でやる方法

base64 (coreutils)
echo -n 'hello' | base64

デコードは -d。URL-safe は --base64url(GNU coreutils 9.x 以降)。

openssl
echo -n 'hello' | openssl base64 -A

-A で改行なし出力。-d でデコード。

Python
python -c "import base64; print(base64.b64encode(b'hello').decode())"

URL-safe は urlsafe_b64encode。

よくある質問

URL-safe Base64 とは何ですか?
標準 Base64 で使われる + と / は URL や JSON Web Token で問題を起こすため、それぞれ - と _ に置き換え、末尾の = を省略した形式です。RFC 4648 の §5 で定義されています。
日本語などのマルチバイト文字に対応していますか?
対応しています。内部で TextEncoder により UTF-8 バイト列に変換してからエンコードします。
入力したデータはサーバーに送信されますか?
送信されません。エンコード・デコードは全てブラウザ内で完結します。
Base64 は暗号ですか?
暗号ではありません。可逆な符号化(エンコーディング)です。鍵がなくても誰でもデコードできるので、機密データの保護には使えません。
ファイルを Base64 化することはできますか?
現在のバージョンではテキスト入力のみ対応しています。バイナリファイルが必要なら CLI(base64 コマンド)の利用を推奨します。
Base64 を含む URL は短縮できますか?
Base64 自体はサイズが約 33 % 増えます。URL に載せたいだけなら別途圧縮(例: gzip + Base64)するか、サーバー側で短縮サービスを使ってください。
改行コード(CRLF / LF)はエンコード結果に影響しますか?
影響します。CRLF と LF は別のバイト列なのでエンコード結果も変わります。意図と異なる場合は事前に改行コード変換を行ってください。
なぜ Base64 化すると 33 % 大きくなりますか?
3 バイトのデータを 4 文字(各 6 ビット)で表現するためです。バイナリ→テキストの符号化なので避けられないオーバーヘッドです。

もっと深く知る

公式ドキュメント / 仕様

学習サイト / 記事

※ Amazon へのリンクはアフィリエイトリンク(Amazon アソシエイト)を含みます。

関連ツール