メインコンテンツまでスキップ

3. 実装の相違

Base encoding 実装の差異は, 主に line feed, padding, alphabet 外文字, alphabet の選択, canonical encoding に集中する.

3.1 Encoded Data 内の Line Feed

参照元の仕様が明示的に要求しない限り, encoder は base-encoded data に line feed を追加してはならない (MUST NOT). MIME の 76 文字制限や PEM の 64 文字制限はそれぞれの形式の規則であり, 一般的な Base64 の規則ではない.

3.2 Encoded Data の Padding

通常, encoder は encoded data の末尾に適切な pad character を含めなければならない (MUST). 例外は, 参照元の仕様が padding を使わないことを明示する場合である.

3.3 Alphabet 外文字

参照元の仕様が明示的に許可しない限り, decoder は選択された alphabet 外の文字を含む encoded data を拒否しなければならない (MUST).

3.4 Alphabet の選択

環境によって適切な alphabet は異なる. +/ は URL や filename で扱いにくいため, RFC 4648 は URL and Filename Safe Base64 alphabet を定義する.

3.5 Canonical Encoding

padding bit は zero でなければならない (MUST). そうでなければ, 同じ binary value に複数の textual representation が生じ, canonical comparison, signature, hash に影響する.