Base64は、画像やファイルなどのバイナリデータを、英数字を中心とする文字列で表現するためのエンコード方式です。APIレスポンス、メール、設定ファイル、データURLなどで見かけます。

ただし、Base64は暗号化ではありません。文字列を見ただけでは元の内容が分かりにくくても、対応するデコーダーがあれば元へ戻せます。パスワードや秘密鍵を守る目的では使えません。

Base64の仕組み

RFC 4648で定義されるBase64は、入力データを6ビットずつに分け、64種類の文字へ対応させます。3バイトの入力を4文字で表すのが基本なので、変換後のデータは通常、元データより大きくなります。

末尾に見かける=は、入力サイズが3バイト単位にならない場合に長さを合わせるパディングです。URLやファイル名で使いやすいよう、+/を別の文字へ置き換えるBase64urlという種類もあります。

Base64と暗号化・ハッシュの違い

方法 元に戻せるか 主な目的
Base64 戻せる バイナリデータを文字列として扱う
暗号化 鍵があれば戻せる 内容を第三者から保護する
ハッシュ 通常は戻せない 同一性確認や改ざん検知に使う

RFC 4648のセキュリティ上の注意にも、Base64は見た目を分かりにくくするだけで、計算上の機密性を提供しないと明記されています。

よく使われる場面

データURL

小さな画像などをdata:image/png;base64,...の形式でHTMLやCSSへ埋め込む方法です。ブラウザのFileReader.readAsDataURL()も、この接頭辞を含むデータURLを返します。Base64部分だけをデコードする場合は、先頭のdata:*/*;base64,を取り除く必要があります。

JSONやAPI

JSONはバイナリを直接表現できないため、小さなバイナリ値を文字列として渡す用途で使われます。ただしサイズが増えるため、大きなファイルでは通常のファイル転送やオブジェクトストレージの方が適しています。

設定やテストデータ

改行や制御文字を含む短いデータを、コピーしやすい形へ変換するときに便利です。機密情報をリポジトリへ保存してよいという意味ではありません。

変換してはいけない情報

  • パスワードや復旧コード
  • APIキー、アクセストークン、秘密鍵
  • 個人情報や社外秘資料
  • 公開してはいけないファイル

Base64へ変換しても、閲覧権限やアクセス制御は追加されません。秘密情報には、用途に合った暗号化、シークレット管理、アクセス制御を使ってください。

Tools Hubで安全に変換する

Tools HubのBase64変換はブラウザ内で処理され、入力した文字列やファイルをTools Hubのサーバーへ送信しません。

  1. テキストまたはファイルを選ぶ
  2. エンコードまたはデコードを選ぶ
  3. 結果をコピー、または必要に応じて保存する

ブラウザ内処理でも、共有端末のクリップボードや画面共有には注意してください。変換後の文字列をチャットや公開Issueへ貼り付ける前に、元データが公開可能か確認しましょう。

ブラウザ内で変換

Base64変換ツール

テキストとファイルを、サーバーへアップロードせずエンコード・デコードできます。

Base64を変換する

まとめ

  • Base64は暗号化ではなく、バイナリを文字列で表すエンコード方式
  • 変換後は元データより大きくなる
  • 秘密情報の保護には使わない
  • データURL、JSON、短いテストデータなど目的を限定して使う
  • 変換後の文字列も元データと同じ機密性として扱う

参考資料