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 などの暗号化を適用してください。