相关疑难解决方法(0)

在URL中传递base64编码的字符串

通过GET参数传递原始base64编码字符串是否安全?

php string url base64 get

227
推荐指数
7
解决办法
27万
查看次数

用于解码/编码修改后的base64 URL的代码

我想base64编码数据把它放在一个URL中,然后在我的HttpHandler中解码它.

我发现Base64编码允许使用'/'字符,这会弄乱我的UriTemplate匹配.然后我发现维基百科有一个"修改过的Base64 for URL"的概念:

存在修改的URL变体Base64,其中不使用填充'=',标准Base64的'+'和'/'字符分别替换为' - '和'_',因此使用URL编码器/解码器不再需要,并且对编码值的长度没有影响,保留相同的编码形式,以便在关系数据库,Web表单和对象标识符中使用.

使用.NET我想修改我当前的代码,从基本的base64编码和解码到使用"修改的base64 for URL"方法.有没有人这样做过?

为了解码,我知道它开头是这样的:

string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/');

// Append '=' char(s) if necessary - how best to do this?

// My normal base64 decoding now uses encodedText
Run Code Online (Sandbox Code Playgroud)

但是,我需要在结尾处添加一个或两个'='字符,这看起来有点复杂.

我的编码逻辑应该更简单一些:

// Perform normal base64 encoding
byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText);
string base64EncodedText = Convert.ToBase64String(encodedBytes);

// Apply URL variant
string base64UrlEncodedText = base64EncodedText.Replace("=", String.Empty).Replace('+', '-').Replace('/', '_');
Run Code Online (Sandbox Code Playgroud)

我已经看到Guid to Base64用于URL StackOverflow条目,但是它具有已知长度,因此它们可以硬编码最后所需的等号数.

c# url base64 encode decode

108
推荐指数
5
解决办法
9万
查看次数

base64编码不使用"+/="(加号或等号)字符?

我需要编码一个大约1000个字符的字符串,可以是任何字节值(00-FF).我不想使用Hex,因为它不够密集.我理解它是base64的问题,它包含+ /和=这是我在我的应用程序中无法容忍的字符.

有什么建议?

base64 encoding decoding

10
推荐指数
4
解决办法
1万
查看次数

标签 统计

base64 ×3

url ×2

c# ×1

decode ×1

decoding ×1

encode ×1

encoding ×1

get ×1

php ×1

string ×1