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のサーバーへ送信しません。
- テキストまたはファイルを選ぶ
- エンコードまたはデコードを選ぶ
- 結果をコピー、または必要に応じて保存する
ブラウザ内処理でも、共有端末のクリップボードや画面共有には注意してください。変換後の文字列をチャットや公開Issueへ貼り付ける前に、元データが公開可能か確認しましょう。
ブラウザ内で変換
Base64変換ツール
テキストとファイルを、サーバーへアップロードせずエンコード・デコードできます。
まとめ
- Base64は暗号化ではなく、バイナリを文字列で表すエンコード方式
- 変換後は元データより大きくなる
- 秘密情報の保護には使わない
- データURL、JSON、短いテストデータなど目的を限定して使う
- 変換後の文字列も元データと同じ機密性として扱う