Appendix C. Notes on Implementing base64url Encoding without Padding (パディングなしでbase64urlエンコーディングを実装する際の注記)
本付録では、本仕様で要求されているように、パディングを使用せずにbase64urlエンコーディングを実装する方法について説明します。
base64urlエンコーディングは、RFC 4648 [RFC4648] のセクション5で定義されているbase64エンコーディングの変形で、URLとファイル名セーフな文字セットを使用します。唯一の違いは次のとおりです:
- '+'の代わりに'-'を使用
- '/'の代わりに'_'を使用
- パディング'='文字を省略
パディングを使用せずにbase64urlエンコーディングを実装するには:
- 標準のbase64エンコーダーを使用して入力オクテット列をエンコードします
- 結果のすべての'+'文字を'-'に置き換えます
- 結果のすべての'/'文字を'_'に置き換えます
- すべての末尾の'='文字を削除します
base64urlエンコードされた文字列をデコードするには:
- 文字列の長さが4の倍数になるように、必要に応じて'='文字を追加します
- すべての'-'文字を'+'に置き換えます
- すべての'_'文字を'/'に置き換えます
- 標準のbase64デコーダーを使用して結果をデコードします
パディングの計算:
入力長 mod 4 == 0の場合、パディングは不要です。 入力長 mod 4 == 2の場合、2つの'='文字を追加します。 入力長 mod 4 == 3の場合、1つの'='文字を追加します。 入力長 mod 4 == 1の場合、入力は不正な形式です。