首頁 > 後端開發 > C++ > 如何在 ASP.NET Framework 中對修改後的 Base64 URL 進行編碼和解碼?

如何在 ASP.NET Framework 中對修改後的 Base64 URL 進行編碼和解碼?

Linda Hamilton
發布: 2025-01-11 22:08:42
原創
798 人瀏覽過

How to Encode and Decode Modified Base64 URLs in ASP.NET Framework?

在 ASP.NET Framework 中編碼和解碼修改後的 Base64 URL

根據「用於 URL 的修改後的 Base64」概念定義,解碼和編碼修改後的 Base64 URL 可以透過自訂程式碼或利用 HttpServerUtility 類別中的方法來實現。

自訂程式碼

要執行修改後的 Base64 編碼,可以使用以下程式碼:

<code class="language-csharp">// 执行正常的 base64 编码
byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText);
string base64EncodedText = Convert.ToBase64String(encodedBytes);

// 应用 URL 变体
string base64UrlEncodedText = base64EncodedText.Replace("=", "").Replace('+', '-').Replace('/', '_');</code>
登入後複製

對於解碼,可以使用以下程式碼:

<code class="language-csharp">string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/');

// 根据需要追加“=”字符 - 最佳方法是什么?

// 我正常的 base64 解码现在使用 encodedText</code>
登入後複製

HttpServerUtility 類別

或者,您可以使用 HttpServerUtility 類別的 UrlTokenEncodeUrlTokenDecode 方法:

<code class="language-csharp">///<summary>
/// 使用 UTF-8 字符集进行 Base 64 编码,使用 URL 和文件名安全字母表。
///</summary>
///原始字符串
///<returns>Base64 编码的字符串</returns>
public static string Base64ForUrlEncode(string str)
{
    byte[] encbuff = Encoding.UTF8.GetBytes(str);
    return HttpServerUtility.UrlTokenEncode(encbuff);
}
///<summary>
/// 使用 UTF-8 解码使用 URL 和文件名安全字母表的 Base64 编码字符串。
///</summary>
///Base64 代码
///<returns>解码后的字符串。</returns>
public static string Base64ForUrlDecode(string str)
{
    byte[] decbuff = HttpServerUtility.UrlTokenDecode(str);
    return Encoding.UTF8.GetString(decbuff);
}</code>
登入後複製

注意 1:HttpServerUtility 方法的輸出不是有效的 Base64 字串,因為它用對 URL 安全的字元替換了某些字元。

注意2:HttpServerUtility 的輸出格式與RFC4648 中的base64url 演算法不同,因為它根據替換的等號數量用'0'、'1' 或'2' 替換'='填充,以確保URL 安全性。

以上是如何在 ASP.NET Framework 中對修改後的 Base64 URL 進行編碼和解碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板