かるツール

Learn

Base64とは?エンコード・デコードとは?

Base64の意味、必要になる理由、エンコードとデコードの違い、暗号化ではない点を整理します。

約6分
Base64エンコードWeb基礎

1. ざっくり言うと何か

Base64は、データを英数字と一部の記号だけで表せる文字列へ変換するためのエンコード方式です。テキストだけでなく、画像やファイルのようなバイナリデータも文字列として扱いやすくできます。

Base64エンコードは元のデータをBase64文字列へ変換することです。Base64デコードはその逆で、Base64文字列を元のデータやテキストへ戻すことです。

2. なぜ必要になったのか

Webやメール、設定ファイル、JSONなどでは、扱いやすい文字の種類に制限があることがあります。改行、制御文字、画像のようなバイナリデータをそのまま入れると、途中で壊れたり読み取りづらくなったりします。

Base64を使うと、データを比較的安全にコピーしやすい文字列へ置き換えられます。たとえばAPIのテスト、設定値の受け渡し、短いデータの確認などでよく見かけます。

3. どういう仕組みで動くのか

Base64は、データをビット列として見て、6ビットずつ区切り、その値を64種類の文字に対応させます。標準的なBase64では A-Z、a-z、0-9、+、/ の64文字が使われます。

元のデータの長さによっては、最後に = が付くことがあります。これはパディングと呼ばれ、長さをそろえるための目印です。= があるから暗号化されている、という意味ではありません。

日本語のテキストをBase64にするときは、まずUTF-8などの文字コードでバイト列にしてからBase64へ変換します。そのため、同じ文字でも文字コードの扱いが違うと結果が変わることがあります。

  • 「かる」→ 44GL44KL
  • 末尾の = は長さ調整のために付くことがあります。
  • URLで使いやすいように + と / を別の文字へ置き換える Base64URL という形式もあります。

4. よくある誤解

Base64は暗号化ではありません。見た目は読みにくくなりますが、誰でもデコードすれば元の内容を確認できます。秘密情報を守る目的では使えません。

また、Base64は圧縮でもありません。むしろBase64にすると、元のデータより文字列が長くなることが多いです。

  • Base64は「扱いやすい文字列へ変換する方式」であり、セキュリティ対策そのものではありません。
  • URLエンコードとは目的が違います。URLエンコードはURL内で紛らわしい文字を表記変換するためのものです。
  • デコードできない場合は、文字列の欠け、余分な空白、文字コードの違いなどを疑うと整理しやすいです。

5. 実際に使われる場面

APIの認証情報やテストデータ、設定ファイル内の値、メール、Data URLなどでBase64文字列を見かけることがあります。

一方で、長いファイルや画像を何でもBase64にすればよいわけではありません。文字列が長くなって扱いづらくなることもあるので、必要な場面に絞って使うのが現実的です。