Base64
Base64 は任意のバイナリデータを 64 種類の印刷可能 ASCII 文字(A-Z、a-z、0-9、+、/)へ写像し、バイナリデータをテキスト専用チャネルで伝送できるようにする。
目的
7 ビット ASCII テキストしか扱えずバイナリ添付を直接送れなかった初期のメールシステムの問題を解決し、制御文字がゲートウェイに破壊されるのを防いだ。
メカニズム
入力バイト列を 3 バイト(24 ビット)ごとのグループとして処理し、4 個の 6 ビット単位へ分割して、それぞれを Base64 アルファベットの 1 文字へ写像する。末尾の不足分は = で 4 文字までパディングする。符号化長は入力の約 4/3 で、出力長は常に 4 の倍数である。
ユースケース
- JSON・XML・URL へのバイナリデータ埋め込み(Data URL の小画像など)
- メールの MIME 添付転送
- HTTP Basic 認証での username:password のエンコード
- JWT のヘッダーとペイロード部分のエンコード
例
- 入力
HelloOutputSGVsbG8=5 bytes to 8 characters with one trailing = pad
よくあるエラー
- Using standard Base64 directly in URLs, where + and / get percent-encoded and decoding fails
- Use Base64URL instead (- and _ replace + and /, and = padding is dropped)
関連用語
Base32
Base32 はバイナリデータを 32 文字のアルファベット(A-Z と 2-7)へ写像する。出力は大文字と数字のみで構成され、読み上げや手入力が容易である。 用語集
Base16
Base16 は十六進エンコーディングであり、4 ビットごとに 1 文字の十六進文字(0-9、A-F)へ写像する。RFC 4648 で定義される Base 系の最も単純な一員である。 用語集
Hexadecimal
16 進法(Hexadecimal)は 0-9 と A-F で 0-15 を表す基数 16 の記数法であり、計算機で最もよく使われる進数表記の一つである。 用語集
MIME Encoding
MIME(Multipurpose Internet Mail Extensions)エンコーディングは、メールで非 ASCII テキストやバイナリ添付を運ぶ仕組みを定義する。Base64 と Quoted-Printable のコンテンツ転送符号化を含む。 用語集
関連ツール
Base64 エンコーダー
Encode text or binary data to Base64 online。無料、プライベート、100%クライアントサイド。 ツール
Base64 デコーダー
Decode Base64 data back to readable text online。無料、プライベート、100%クライアントサイド。 ツール
Base64 からファイルへの変換
Decode Base64 data URL to downloadable file。無料、プライベート、100%クライアントサイド。 ツール
Base64 画像プレビュー
Preview Base64 image and show metadata。無料、プライベート、100%クライアントサイド。 ツール