Appendix A. Notes on Implementing Base64url Encoding without Padding (パディングなしのBase64urlエンコーディング実装に関する注意事項)
本附録では、パディングを使用する標準のbase64エンコーディング関数に基づいて、パディングなしのbase64urlエンコーディング関数を実装する方法について説明します。
具体的には、これらの関数を実装するC#コードの例を以下に示します。同様のコードを他の言語でも使用できます。
static string base64urlencode(byte [] arg)
{
string s = Convert.ToBase64String(arg); // 通常のbase64エンコーダ
s = s.Split('=')[0]; // 末尾の'='を削除
s = s.Replace('+', '-'); // エンコーディングの62番目の文字
s = s.Replace('/', '_'); // エンコーディングの63番目の文字
return s;
}
エンコードされていない値とエンコードされた値の対応例を以下に示します。以下のオクテットシーケンスは、以下の文字列にエンコードされ、デコードされると、このオクテットシーケンスが再現されます。
3 236 255 224 193
A-z_4ME