Base64 エンコード / デコード の使い方 🚀 ツールを使う
無料 登録不要 ブラウザのみ オフライン対応

🔐 Base64 エンコード / デコード の使い方

テキストやバイナリデータを Base64 形式に即座に変換・復元できる無料ツールです。ブラウザ上で完結するためデータがサーバーに送信されることはありません。

🚀 今すぐ Base64 ツールを使う →

📌 このツールでできること

Base64 エンコード / デコード ツールでは、以下の操作をブラウザ上だけで実行できます。

  • テキスト文字列を Base64 形式にエンコード
  • Base64 文字列を元のテキストにデコード
  • URL-safe Base64(+-/_)への変換
  • 結果のワンクリックコピー
  • オフラインでも利用可能(処理はすべてブラウザ内で完結)

🚀 使い方

  1. ページ上部のテキストエリアに、エンコードまたはデコードしたい文字列を入力します。
  2. 「エンコード」ボタンを押すと Base64 形式の文字列が、「デコード」ボタンを押すと元のテキストが下部に表示されます。
  3. 「コピー」ボタンをクリックして結果をクリップボードにコピーします。
  4. 「クリア」ボタンで入力・出力欄をまとめてリセットできます。

💡 活用例

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-Za-z0-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

※ 本リンクはアフィリエイト広告を含みます。


🔗 関連ツール

関連ツール