相关疑难解决方法(0)

如何在C#中实现Base64 URL安全编码?

我想在C#中实现Base64 URL安全编码.在Java中,我们有一个公共Codec库,它为我提供了一个URL安全编码字符串.如何使用C#实现相同的目标?

byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
Run Code Online (Sandbox Code Playgroud)

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

c# base64 encoding

88
推荐指数
5
解决办法
7万
查看次数

BitConverter.ToString()反过来?

我有一个字节数组,我想存储为字符串.我可以这样做:

byte[] array = new byte[] { 0x01, 0x02, 0x03, 0x04 };
string s = System.BitConverter.ToString(array);

// Result: s = "01-02-03-04"
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.有谁知道我怎么回到阵列?没有BitConverter.GetBytes()的重载,它接受一个字符串,这似乎是一个讨厌的解决方法,将字符串分解为一个字符串数组,然后转换它们中的每一个.

所讨论的数组可以是可变长度的,可能是大约20个字节.

.net c#

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

在ASP.NET MVC中加密URL中的id

我正在尝试对Url中的加密ID进行编码.像这样:http://www.calemadr.com/Membership/Welcome/9xCnCLIwzxzBuPEjqJFxC6XJdAZqQsIDqNrRUJoW6229IIeeL4eXl5n1cnYapg+N

但是,它要么没有正确编码,我在加密中得到斜杠"/",或者我收到来自IIS的错误:请求过滤模块配置为拒绝包含双转义序列的请求.

我尝试了不同的编码,每个都失败了:

  • HttpUtility.HtmlEncode
  • HttpUtility.UrlEncode
  • HttpUtility.UrlPathEncode
  • HttpUtility.UrlEncodeUnicode

更新

问题是当我加密Guid并将其转换为base64字符串时,它将包含不安全的url字符.当然,当我试图导航到包含不安全字符的URL时,IIS(7.5/windows 7)会爆炸.Url编码base64加密字符串会引发IIS中的错误(请求过滤模块配置为拒绝包含双转义序列的请求.).我不确定它是如何检测双重编码的字符串但它确实如此.

尝试上述方法后编码base64加密字符串.我决定删除base64编码.但是,这会将加密文本保留为byte [].我尝试了UrlEncoding byte [],这是挂起httpUtility.Encode方法的重载之一.同样,虽然它是URL编码,但IIS不喜欢它,并提供了"找不到页面".

在网上挖掘后,我遇到了一个HexEncoding/Decoding类.将Hex编码应用于加密字节就可以了.输出是url安全的.另一方面,我对解码和解密十六进制字符串没有任何问题.

encryption asp.net-mvc

11
推荐指数
2
解决办法
3万
查看次数

查询字符串参数混淆

我想在ASP.NET中混淆一个查询字符串参数.该站点将有大量请求,因此算法不应该太慢.

我的问题是我找到的所有算法都会产生不需要的字符(比如+/=)

这是我想要实现的一个例子:

www.domain.com/?id=1844
Run Code Online (Sandbox Code Playgroud)

www.domain.com/?id=3GQ5DTL3oVd91WsGj74gcQ
Run Code Online (Sandbox Code Playgroud)

混淆的参数应该只包括az和AZ以及0-9个字符.

我知道我可以使用base64进行加密,但这会生成不需要的字符,例如/or =+.

知道可以使用什么算法吗?

更新: 我知道UrlEncoding,我想避免编码字符串.因为这会在网址中生成%F2或%B2等字符.

.net c# asp.net encryption cryptography

7
推荐指数
2
解决办法
9346
查看次数

标签 统计

c# ×3

.net ×2

encryption ×2

asp.net ×1

asp.net-mvc ×1

base64 ×1

cryptography ×1

encoding ×1