utilduck
Home · 開発 · Base64 エンコード / デコード

Base64 エンコード / デコード

テキストを入力してエンコードまたはデコードを選ぶと、すぐに結果が出ます。

結果
-

Base64とは?

Base64は、バイナリデータやテキストを64個の印刷可能なASCII文字に変換するエンコード方式です。メールの添付、HTML/CSSへの画像埋め込み、テキスト専用チャンネルでのバイナリデータ転送に広く使われます。デコードは逆の変換で元のテキストに戻します。

テキストをBase64にエンコードする方法

テキストをBase64にエンコードするには、テキストの生バイトを3バイトずつのまとまりに分け、各24ビットのまとまりをBase64の64文字アルファベットから4文字に変換します。短い最終グループは=で埋めます。例: 「hello」は「aGVsbG8=」にエンコードされ、「aGVsbG8=」をデコードすると「hello」に戻ります。

Base64をエンコード・デコードする手順

  1. 入力テキストをUTF-8エンコーディングで生バイトに変換します。
  2. バイトを左から3個ずつ(合計24ビット)のグループにまとめます。
  3. 各24ビットのグループを4つの6ビットのかたまり(値0〜63)に分割します。
  4. 各6ビットのかたまりをBase64アルファベット(A-Z, a-z, 0-9, +, /)の1文字に対応させます。
  5. 最後のグループが3バイト未満の場合は=で埋め、全体の長さを4の倍数にそろえます。デコードは各手順を逆にたどり、元のバイトを復元します。

Base64エンコードのルール

3バイト(24ビット) -> Base64文字4個(各6ビット)、不足分は=で埋めて4の倍数に
  • Base64アルファベット = A-Z, a-z, 0-9, +, / — 0〜63の値を表す64個の印字可能文字
  • =パディング文字 = 最後のグループが不完全なときに埋め、エンコード結果の長さを常に4の倍数に保つ

テキスト→Base64変換の例

テキストBase64
aYQ==
abYWI=
abcYWJj
helloaGVsbG8=
Hello, World!SGVsbG8sIFdvcmxkIQ==

よくある質問

Base64エンコードは暗号化と同じですか?

いいえ。Base64には秘密鍵がなく、誰でも同じ公開された標準アルファベットで元のテキストに戻せます。テキスト専用のシステムで安全に転送するためにデータの表現方法を変えているだけで、機密性は提供しないため、機密データの保護には絶対に使うべきではありません。

エンコード結果が=や==で終わることがあるのはなぜですか?

=はパディング文字です。Base64は常に入力3バイトを出力4文字に変換するため、入力長が3の倍数でない場合、最後のグループに=を1つまたは2つ加えて全体の出力長を4の倍数に保ちます。

Base64の出力が元のテキストより長くなるのはなぜですか?

入力3バイトごとに出力4文字になるため、エンコードされたテキストは元のテキストよりおよそ33%大きくなります。これは、任意のバイナリデータを安全な印字可能ASCII文字だけで表現するための代償です。

Base64はテキスト以外のデータもエンコードできますか?

はい。Base64は生バイトに対して動作するため、画像や音声などあらゆるバイナリファイルをエンコードできます。このツールはテキスト入力を受け取りUTF-8バイト表現をエンコードします。バイナリファイル自体をエンコードするには、ファイルのバイトを直接読み込むツールが必要です。

このツールはブラウザ内で完結してUTF-8テキストをエンコード・デコードします。バイナリファイルのアップロードには対応しておらず、有効なBase64でないテキストをデコードすると、部分的・破損した出力ではなくエラーが表示されます。

Sources: RFC 4648 - Base16, Base32, Base64データエンコーディング標準

プライバシーと安全性

  • ブラウザ内で計算 — 入力した値はお使いの端末内だけで計算され、utilduckのサーバーへ送信されません。
  • 暗号化された通信 — すべてのページはHTTPSで配信され、通信経路で内容を読み取られません。
  • 第三者へ渡しません — 入力内容は解析・広告サービスへ渡されません。
  • 保存しません — 計算結果をサーバーに保存せず、アカウント登録も不要です。

最終更新: 2026-08-17