首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C#中实现Base64网址的安全编码?

如何在C#中实现Base64网址的安全编码?
EN

Stack Overflow用户
提问于 2014-10-14 14:06:24
回答 9查看 117.6K关注 0票数 137

我想在C#中实现Base64网址的安全编码。在Java语言中,我们有一个通用的Codec库,它为我提供了一个安全的URL编码字符串。如何使用C#实现相同的功能?

代码语言:javascript
复制
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);

上面的代码将其转换为Base64,但它填充了==。有没有办法实现URL安全编码?

EN

回答 9

Stack Overflow用户

发布于 2016-09-30 20:29:55

您可以使用名称空间Microsoft.IdentityModel.Tokens中的类Base64UrlEncoder

代码语言:javascript
复制
const string StringToEncode = "He=llo+Wo/rld";

var encodedStr = Base64UrlEncoder.Encode(StringToEncode);
var decodedStr = Base64UrlEncoder.Decode(encodedStr);

if (decodedStr == StringToEncode)
    Console.WriteLine("It works!");
else
    Console.WriteLine("Dangit!");
票数 113
EN

Stack Overflow用户

发布于 2018-02-19 11:00:11

如果你使用的是ASP.NET核心,另一个选择是使用Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode

如果您没有使用ASP.NET核心,可以在Apache 2.0 License下使用the WebEncoders source

票数 39
EN

Stack Overflow用户

发布于 2017-07-18 02:28:52

基于这里的答案和一些性能上的改进,我们发布了一个非常容易使用的带有源代码available on GitHub (麻省理工学院许可的)的url-safe base64 implementation to NuGet

使用起来很简单,就像

代码语言:javascript
复制
var bytes = Encoding.UTF8.GetBytes("Foo");
var encoded = UrlBase64.Encode(bytes);
var decoded = UrlBase64.Decode(encoded);
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26353710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档