首頁 >後端開發 >C++ >如何在C#中實作URL安全的Base64編碼和解碼?

如何在C#中實作URL安全的Base64編碼和解碼?

Susan Sarandon
Susan Sarandon原創
2025-01-25 03:17:09285瀏覽

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

C# 中的 URL 安全 Base64 編碼

Base64 編碼是一種常見的編碼方式,但在進行 URL 安全編碼時,某些字元( 、/ 和 =)可能會造成問題。雖然 Java 的 Codec 函式庫提供了一個直接的解決方案,但 C# 需要稍微不同的方法。

實作 URL 安全編碼

要在 C# 中實現 URL 安全的 Base64 編碼,可以簡單地將有問題的字元替換為 URL 友善的字元(- 代替 ,_ 代替 /),並刪除任何填充字元 (=)。

<code class="language-csharp">string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>

其中,padding 定義為:

<code class="language-csharp">static readonly char[] padding = { '=' };</code>

要反轉此過程:

<code class="language-csharp">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);</code>

與 Codec 函式庫的比較

值得注意的是,這種方法類似 Java 的 Codec 函式庫所使用的方法。但是,建議測試此假設以確保與正在使用的特定庫相容。

以上是如何在C#中實作URL安全的Base64編碼和解碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn