gpt4 book ai didi

C# Byte[] 到 Url 友好字符串

转载 作者:IT王子 更新时间:2023-10-29 04:15:10 25 4
gpt4 key购买 nike

我正在为一个我放在一起的简单网站开发一个快速验证码生成器,我希望在页面的 url 中传递一个加密 key 。我可能可以很容易地将此​​作为查询字符串参数来执行,但我希望不会太(只是因为查询字符串没有其他任何内容)...

我的加密代码生成一个 byte[],然后使用 Convert.ToBase64String(byte[]) 将其转换为字符串。然而,这个字符串仍然不是 url 友好的,因为它可以包含像 '/' 和 '=' 这样的东西。有谁知道 .NET 框架中将字节数组转换为 url 友好字符串的更好函数?

我对 System.Web.HttpUtility.UrlEncode() 及其等价物了如指掌,但是,它们只适用于查询字符串参数。如果我在路径中对“=”进行 url 编码,我的网络服务器会返回 400 Bad Request 错误。

无论如何,不​​是关键问题,但希望有人能给我一个好的解决方案

**编辑:为了绝对确定我对字符串做了什么,我想我会提供更多信息。

我的加密算法产生的 byte[] 应该通过某种算法提供,以使其成为 url 友好的字符串。此后,它成为 XElement 的内容,然后用作 XSLT 转换的源文档,并用作 anchor href 属性的一部分。我不相信 xslt 转换会导致问题,因为路径上出现的内容似乎是编码的查询字符串参数,但会导致 HTTP 400

我还在 base64 字符串上尝试了 HttpUtility.UrlPathEncode(),但这似乎也不起作用(我的 url 中仍然以“/”结尾)**

最佳答案

您正在 System.Web 中寻找 HttpServerUtility.UrlTokenEncodeHttpServerUtility.UrlTokenDecode

它们以 base64 编码,将具有潜在危险的“+”和“/”字符替换为“-”和“_”。

MSDN documentation

关于C# Byte[] 到 Url 友好字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com