Base64とは
Base64は、バイナリデータを64個の印字可能文字(A-Z、a-z、0-9、+、/)にエンコードする方式です。暗号化ではなく、単に「書き方を変える」だけで、バイナリデータをテキストの経路で送れるようにします。エンコード後のデータサイズは約33%大きくなります。
Base64を使う理由
多くのシステムはテキスト転送しかサポートしていません。例えばメール、JSON、URL、XMLなどです。これらの経路で画像、音声、バイナリファイルを送るには、まずテキストにエンコードする必要があります。Base64が最も汎用的なソリューションです。
よくある用途
1. メール添付
メールプロトコルは元々ASCIIテキストしかサポートしておらず、添付ファイル(画像、ドキュメント)はBase64エンコードしてからでないと転送できません。
2. データURI / インライン画像
画像をBase64に変換してHTML/CSSに直接埋め込むと、HTTPリクエストを減らせます。詳しくはBase64画像の使い方ガイドをご覧ください。
3. APIデータ転送
JSONはバイナリをサポートしません。画像やファイルを送る際は、まずBase64で文字列にエンコードしてJSONに入れます。
4. 環境変数の保存
証明書や鍵などのバイナリ設定は、Base64エンコードして環境変数に保存します。
DocsAll Base64エンコード・デコードツール
エンコード・デコードツールでワンクリック操作:
- エンコード・デコードツールを開く
- Base64モードを選択
- テキストを貼り付け → 「エンコード」をクリックしてBase64を取得、またはBase64を貼り付け → 「デコード」をクリックして復元
- 結果をコピー
ツールはURLエンコード、HTMLエンティティエンコードも同時にサポートし、よくあるニーズをカバーします。
エンコード例
テキスト Hello をエンコードすると SGVsbG8= になります。末尾のイコールに注意してください。Base64はイコールで桁数を補完しており、エラーではありません。
よくある落とし穴
Base64は暗号化ではない
誰でもデコードできます。絶対に敏感なデータの「暗号化」に使わないでください。暗号化にはAESやRSAなどのアルゴリズムを使ってください。
サイズが33%大きくなる
Base64エンコード後、3バイトごとに4文字になり、転送と保存のコストが増加します。大きなファイルでは慎重に使ってください。
文字セットの問題
標準のBase64には + と / が含まれており、URLに置くと問題が起きます。URLのケースでは、URLセーフのBase64(+ を - に、/ を _ に置き換え)を使ってください。
改行
一部のBase64実装は76文字ごとに改行を入れ、デコード時には通常改行を無視します。デコードに失敗した場合は、余分な改行やスペースがないかまず確認してください。
実践的なアドバイス
- エンコード前にデータがテキストかバイナリかを確認し、適切なモードを選ぶ
- デコード失敗時は、文字が完全か、スペースや改行がないかをまず確認
- 大きなファイルをBase64でインライン化しない、サイズ膨張が激しいため
Base64をマスターすると、フロントエンド・バックエンドのデバッグやデータ転送がかなりスムーズになります。