首页 > 后端开发 > C++ > 如何在C#中实现base64 URL-SAFE编码和解码?

如何在C#中实现base64 URL-SAFE编码和解码?

Patricia Arquette
发布: 2025-01-25 03:21:13
原创
755 人浏览过

How to Implement Base64 URL-Safe Encoding and Decoding in C#?

C#中的Base64 URL安全编码

问题:

如何在C#中实现Base64 URL安全编码,其中' '和'/'字符分别替换为'-'和'_',并且省略填充'='?

答案:

在Java中,常用的Codec库方便地提供了URL安全编码。但是,在C#中,需要实现我们自己的解决方案。

编码:

要将字节数组编码为C#中的URL安全Base64字符串,请使用以下代码:

<code class="language-csharp">string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>
登录后复制

创建一个用于填充字符的常量数组:

<code class="language-csharp">static readonly char[] padding = { '=' };</code>
登录后复制

解码:

要将URL安全Base64字符串解码回字节数组,请使用以下代码:

<code class="language-csharp">string incoming = returnValue
    .Replace('_', '/').Replace('-', '+');
switch(returnValue.Length % 4) {
    case 2: incoming += "=="; break;
    case 3: incoming += "="; break;
}
byte[] bytes = Convert.FromBase64String(incoming);
string originalText = Encoding.ASCII.GetString(bytes);</code>
登录后复制

附加说明:

为了确保与Java Codec库提供的URL安全编码一致,值得测试上述方法是否产生相同的结果。URL安全编码是一种标准做法,可以避免在URL中需要进行%-编码,同时保持数据的完整性。

以上是如何在C#中实现base64 URL-SAFE编码和解码?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板