5
用于对修改后的base64 URL进行解码/编码的代码
我想对数据进行base64编码,以将其放入URL,然后在HttpHandler中对其进行解码。 我发现Base64编码允许使用'/'字符,这会弄乱我的UriTemplate匹配。然后我发现维基百科有一个“ URL的修改后的Base64”概念: 存在URL变体的经过修改的Base64,其中将不使用填充'=',并且标准Base64的'+'和'/'字符分别被替换为'-'和'_',以便使用URL编码器/解码器不再是必需的,并且对编码值的长度没有影响,通常保留相同的编码形式以供关系数据库,Web表单和对象标识符使用。 使用.NET,我希望将当前代码从基本的base64编码和解码修改为使用“ URL的修改后的base64”方法。有人这样做吗? 要解码,我知道它始于以下内容: string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // Append '=' char(s) if necessary - how best to do this? // My normal base64 decoding now uses encodedText 但是,我可能需要在末尾添加一个或两个'='字符,看起来有点复杂。 我的编码逻辑应该更简单一些: // Perform normal base64 encoding byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // Apply …