Base64とは?仕組みと変換原理(Data URI・Basic認証での使い方)
Base64 エンコード JavaScript 開発
Base64エンコーディングの数学的仕組み、Data URI や HTTP Basic 認証での実用例、および注意点です。
1. オンライン Base64 エンコード / デコード
テキストやデータのBase64エンコード・復元がブラウザ上で即座に行えます。
🔄 この場でBase64デコードを試す
2. Base64 の変換原理(なぜ3バイトが4文字になるのか)
Base64は、3バイト(24ビット)のバイナリデータ を 6ビットずつ4つに分割 し、それぞれを64種類のASCII文字に割り当てる仕組みです。
元のデータ: "ABC" (3バイト = 24ビット)
ASCIIコード: 065 066 067
2進数: 01000001 01000010 01000011
6bitずつ分割: 010000 | 010100 | 001001 | 000011
10進数変換: 16 20 9 3
Base64文字: Q U J D => "QUJD"
パディング (=) の役割
入力データが3バイトの倍数でない場合、不足分を 0 で埋め、出力の末尾に =(パディング)を付与して4文字単位に揃えます。
3. 主な用途と実務例
| 用途 | 具体的な使用例 | メリット / デメリット |
|---|---|---|
| Data URI | <img src="data:image/png;base64,iVBORw0KG..." /> | メリット: 小さなアイコンをHTTPリクエストなしでHTML/CSSに直接埋め込める デメリット: データサイズが約 33% 増加 する |
| HTTP Basic 認証 | Authorization: Basic dXNlcjpwYXNz | ユーザー名とパスワードを : で繋いでBase64化しヘッダー送信 |
| JSONでのバイナリ送信 | Web APIのJSONペイロード内に画像を載せる | テキストのみを許容するJSON内に画像データを包含可能 |
4. 厳禁:Base64は「暗号化」ではない
Base64はデータフォーマットの変換(エンコード)であり、暗号化(Encryption)ではありません。
アルゴリズムとBase64文字列さえあれば、誰でも元データに完全にデコードできます。パスワードやAPIシークレットを Base64 にしただけで「隠した」と判断するのは極めて危険です。秘匿が必要なデータには AES や RSA などの暗号化を適用してください。