如何从修改后的Base64中删除URL的填充?

时间:2009-01-21 10:26:01

标签: asp.net base64

这篇关于Base64 URL的Wiki文章说

“出于这个原因,存在修改后的Base64 for URL变体, no padding'='将被使用,标准Base64的'+'和'/'字符分别被替换为' - '和'_',因此不再需要使用URL编码器/解码器,并且对编码值的长度没有影响,保留相同的编码形式,以便在关系数据库,Web表单和对象标识符中使用一般“。

当我尝试使用ASP.NET删除填充时,我收到查询字符串时出错。如何解释缺失的填充?

1 个答案:

答案 0 :(得分:3)

string encoded = GetBase64FromQueryString();

encoded = encoded.PadRight(NextMultiple(encoded.Length, 4), '=');
...
static int NextMultiple(int value, int multiple)
{
    int r = value % multiple;
    return value + (r != 0 ? multiple - r : 0);
}