5
変更されたbase64 URLをデコード/エンコードするためのコード
データをbase64でエンコードしてURLに配置し、HttpHandler内でデコードしたいと考えています。 Base64エンコードでは、UriTemplateの一致を台無しにする「/」文字が許可されることがわかりました。次に、Wikipediaから「URLのBase64を変更する」という概念があることがわかりました。 URLバリアントの変更されたBase64が存在し、パディング「=」は使用されず、標準のBase64の「+」および「/」文字はそれぞれ「-」および「_」に置き換えられるため、URLエンコーダー/デコーダーを使用するは不要になり、エンコードされた値の長さに影響を与えません。同じエンコードされたフォームをそのままリレーショナルデータベース、Webフォーム、およびオブジェクト識別子で使用するために残します。 .NETを使用して、現在のコードを基本的なbase64エンコードおよびデコードから「変更されたbase64 for base64」メソッドを使用するように変更したいと思います。誰かこれをやったことがありますか? デコードするには、次のようなものから始めます。 string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // Append '=' char(s) if necessary - how best to do this? // My normal base64 decoding now uses encodedText しかし、私は潜在的に1つまたは2つの「=」文字を最後に追加する必要がありますが、これは少し複雑に見えます。 私のエンコーディングロジックはもう少し単純なはずです。 // Perform normal base64 encoding byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // Apply …