Heim >Backend-Entwicklung >C++ >Wie kodiere und dekodiere ich geänderte Base64-URLs in ASP.NET Framework?

Wie kodiere und dekodiere ich geänderte Base64-URLs in ASP.NET Framework?

Linda Hamilton
Linda HamiltonOriginal
2025-01-11 22:08:42800Durchsuche

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

Kodierung und Dekodierung geänderter Base64-URLs in ASP.NET Framework

Wie im „Modified Base64 for URLs“-Konzept definiert, kann die Dekodierung und Kodierung modifizierter Base64-URLs durch benutzerdefinierten Code oder durch die Nutzung von Methoden in der Klasse HttpServerUtility implementiert werden.

Benutzerdefinierter Code

Um eine modifizierte Base64-Codierung durchzuführen, können Sie den folgenden Code verwenden:

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

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

Zur Dekodierung können Sie den folgenden Code verwenden:

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

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

// 我正常的 base64 解码现在使用 encodedText</code>

HttpServerUtility-Klasse

Alternativ können Sie die Methoden HttpServerUtility und UrlTokenEncode der Klasse UrlTokenDecode verwenden:

<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>

Hinweis 1: Die Ausgabe der Methode HttpServerUtility ist keine gültige Base64-Zeichenfolge, da sie einige Zeichen durch URL-sichere Zeichen ersetzt.

Hinweis 2: Das Ausgabeformat von HttpServerUtility unterscheidet sich vom base64url-Algorithmus in RFC4648, da es „=“ je nach Anzahl durch „0“, „1“ oder „2“ ersetzt Gleichheitszeichen ersetzt Padding, um die URL-Sicherheit zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWie kodiere und dekodiere ich geänderte Base64-URLs in ASP.NET Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn