首頁 > 後端開發 > C++ > 如何在C#中實現base64 URL-SAFE編碼和解碼?

如何在C#中實現base64 URL-SAFE編碼和解碼?

Patricia Arquette
發布: 2025-01-25 03:21:13
原創
752 人瀏覽過

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

C#中的Base64 URL安全編碼

問題:

如何在C#中實現Base64 URL安全編碼,其中' '和'/'字符分別替換為'-'和'_',並且省略填充'='?

答案:

在Java中,常用的Codec庫方便地提供了URL安全編碼。但是,在C#中,需要實現我們自己的解決方案。

編碼:

要將字節數組編碼為C#中的URL安全Base64字符串,請使用以下代碼:

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

創建一個用於填充字符的常量數組:

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

解碼:

要將URL安全Base64字符串解碼回字節數組,請使用以下代碼:

<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>
登入後複製

附加說明:

為了確保與Java Codec庫提供的URL安全編碼一致,值得測試上述方法是否產生相同的結果。 URL安全編碼是一種標準做法,可以避免在URL中需要進行%-編碼,同時保持數據的完整性。

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

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