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

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

Susan Sarandon
Susan Sarandon原创
2025-01-25 03:17:09317浏览

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

C# 中的 URL 安全 Base64 编码

Base64 编码是一种常见的编码方式,但在进行 URL 安全编码时,某些字符( 、/ 和 =)可能会造成问题。虽然 Java 的 Codec 库提供了一种直接的解决方案,但 C# 需要稍微不同的方法。

实现 URL 安全编码

要在 C# 中实现 URL 安全的 Base64 编码,可以简单地将有问题的字符替换为 URL 友好的字符(- 代替 ,_ 代替 /),并删除任何填充字符 (=)。

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

其中,padding 定义为:

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

要反转此过程:

<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>

与 Codec 库的比较

值得注意的是,这种方法类似于 Java 的 Codec 库使用的方法。但是,建议测试此假设以确保与正在使用的特定库兼容。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn