コンテンツへスキップ
uencoder

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 のヘッダーとペイロード部分のエンコード

例

  • 入力
    Hello
    Output
    SGVsbG8=

    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)

関連用語

関連ツール

関連チュートリアル

References