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

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

Susan Sarandon
发布: 2025-01-25 03:17:09
原创
360 人浏览过

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

C# 中的 URL 安全 Base64 编码

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

实现 URL 安全编码

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

string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');
登录后复制

其中,padding 定义为:

static readonly char[] padding = { '=' };
登录后复制

要反转此过程:

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);
登录后复制

与 Codec 库的比较

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

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

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