🔐 Base64 エンコード / デコード の使い方
テキストやバイナリデータを Base64 形式に即座に変換・復元できる無料ツールです。ブラウザ上で完結するためデータがサーバーに送信されることはありません。
🚀 今すぐ Base64 ツールを使う →📌 このツールでできること
Base64 エンコード / デコード ツールでは、以下の操作をブラウザ上だけで実行できます。
- テキスト文字列を Base64 形式にエンコード
- Base64 文字列を元のテキストにデコード
- URL-safe Base64(
+→-、/→_)への変換 - 結果のワンクリックコピー
- オフラインでも利用可能(処理はすべてブラウザ内で完結)
🚀 使い方
- ページ上部のテキストエリアに、エンコードまたはデコードしたい文字列を入力します。
- 「エンコード」ボタンを押すと Base64 形式の文字列が、「デコード」ボタンを押すと元のテキストが下部に表示されます。
- 「コピー」ボタンをクリックして結果をクリップボードにコピーします。
- 「クリア」ボタンで入力・出力欄をまとめてリセットできます。
💡 活用例
Basic 認証ヘッダーの生成
HTTP の Basic 認証では、username:password を Base64 エンコードした値を Authorization ヘッダーに付与します。
Authorization: Basic dXNlcjpwYXNzd29yZA==
このツールで user:password をエンコードすると dXNlcjpwYXNzd29yZA== が得られます。
データ URI(画像の埋め込み)
小さなアイコン画像を HTML や CSS に直接埋め込む際、画像バイナリを Base64 エンコードして Data URI として使用します。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." />
JWT のペイロード確認
JSON Web Token(JWT)は header.payload.signature の 3 部構成で、header と payload は Base64URL エンコードされています。ドットで分割した 2 番目の部分をこのツールでデコードすると、sub(ユーザーID)や exp(有効期限)などのクレームを確認できます。
API キーの一時的なマスキング
API キーを設定ファイルやメモに一時保存する際、平文を避けて Base64 エンコードしておく運用例があります。ただし Base64 は暗号化ではないため、セキュリティ目的での使用には注意が必要です。
🔍 技術的な背景 / 仕組み
Base64 は RFC 4648 で定義されたエンコード方式で、バイナリデータを 64 種類の ASCII 文字(A-Z、a-z、0-9、+、/)で表現します。
変換の仕組みは次のとおりです。
- 入力バイト列を 3 バイト(24 ビット)単位に分割します。
- 24 ビットを 6 ビットずつ 4 グループに分割し、それぞれ Base64 の文字テーブルに対応する文字に置き換えます。
- 入力が 3 の倍数でない場合は
=をパディングとして末尾に付加します。
結果として、データ量は元の約 4/3 倍(約 33% 増)になります。このツールはブラウザ標準の btoa() / atob() 関数と TextEncoder を使用しており、サーバーへの通信は一切発生しません。
URL-safe Base64 とは
標準 Base64 の文字セットに含まれる +(プラス)と /(スラッシュ)は、URL のクエリパラメータやパスに使うと %2B / %2F へのパーセントエンコードが必要になります。URL-safe Base64(RFC 4648 §5)はこれを解決するために + → -、/ → _ に置き換えた変形版です。JWT のトークン文字列はこの URL-safe Base64 を使用しています。
プログラミング言語別の実装例
各言語で Base64 エンコード・デコードを行うコードは以下のとおりです。
# Python import base64 encoded = base64.b64encode(b"hello world").decode() # "aGVsbG8gd29ybGQ=" decoded = base64.b64decode(encoded).decode() # "hello world" # URL-safe版 url_safe = base64.urlsafe_b64encode(b"hello+world").decode()
// JavaScript (ブラウザ・Node.js)
const encoded = btoa("hello world"); // "aGVsbG8gd29ybGQ="
const decoded = atob(encoded); // "hello world"
// Node.js (Buffer を使う方法)
const enc = Buffer.from("hello world").toString("base64");
const dec = Buffer.from(enc, "base64").toString();
// Go
import "encoding/base64"
encoded := base64.StdEncoding.EncodeToString([]byte("hello world"))
decoded, _ := base64.StdEncoding.DecodeString(encoded)
// URL-safe版
urlSafe := base64.URLEncoding.EncodeToString([]byte("hello+world"))
❓ よくある質問
- Q. Base64 は暗号化ですか?
- いいえ。Base64 はエンコード(表現形式の変換)であり、暗号化ではありません。デコードキーなしで誰でも元のデータを復元できます。パスワードや機密情報の保護には、暗号化アルゴリズム(AES など)や安全なハッシュ関数(bcrypt など)を使用してください。
- Q. 末尾の
=は何ですか? - パディング文字です。Base64 は 3 バイト単位で処理するため、入力データが 3 の倍数でない場合に
=または==を末尾に追加してブロックサイズを揃えます。デコード時には無視されます。 - Q. URL-safe Base64 との違いは何ですか?
- 標準 Base64 では
+と/を使用しますが、これらは URL 内で特別な意味を持つ文字です。URL-safe Base64(RFC 4648 §5)では+を-に、/を_に置き換えます。JWT のトークン生成などで使用されます。 - Q. 日本語はエンコードできますか?
- はい。このツールは UTF-8 で日本語テキストをエンコードしてから Base64 変換するため、ひらがな・漢字を含む文字列も正しく処理できます。
- Q. 画像を Base64 に変換して HTML/CSS に埋め込めますか?
- このツールはテキスト文字列の Base64 変換に対応しています。画像ファイルを直接 Base64 に変換する場合は、ブラウザの開発者ツールや専用の画像→Base64 変換ツールをお使いください。変換後の Data URI は
<img src="data:image/png;base64,...">や CSS のbackground-image: url("data:image/png;base64,...")として使用できます。 - Q. Base64 でエンコードするとデータサイズはどのくらい増えますか?
- Base64 エンコード後のデータサイズは元データの約 4/3 倍(約 33% 増加)になります。3 バイトのバイナリデータが 4 文字の ASCII 文字列になるためです。大量のバイナリデータを Base64 で転送・保存するとサイズが膨らむ点に注意してください。
📚 関連書籍・商品 PR
※ 本リンクはアフィリエイト広告を含みます。