Heim > Backend-Entwicklung > C++ > Wie kann man Strings für Base64-URL-Safe in C#codieren?

Wie kann man Strings für Base64-URL-Safe in C#codieren?

DDD
Freigeben: 2025-01-25 03:26:09
Original
720 Leute haben es durchsucht

How to Encode Strings to Base64 URL-Safe in C#?

Detaillierte Erläuterung der Base64-URL-Sicherheitskodierung in C#

Base64 URL-sichere Codierung ist eine häufig verwendete URL-Codierungstechnik, die die %-Codierung von Zeichen überflüssig macht. In diesem Artikel wird untersucht, wie diese Codierung in C# implementiert wird.

JavaScript-Methodenvergleich

Java kann mithilfe der Codec-Bibliothek problemlos eine URL-sichere Codierung implementieren. Ein ähnlicher Ansatz kann mit C# verfolgt werden.

Base64-Konvertierung

Der folgende Code zeigt, wie eine Zeichenfolge in Base64 konvertiert wird:

byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
Nach dem Login kopieren

Diese Methode fügt jedoch am Ende des codierten Ergebnisses eine doppelte Gleichheitszeichenauffüllung (=) hinzu.

URL-sichere Codierung implementieren

Um eine URL-sichere Kodierung zu erreichen, müssen wir die folgenden Schritte ausführen:

  1. Ersatzzeichen: Ersetzen Sie „ “ durch „-“ und „/“ durch „_“.
  2. Auffüllung entfernen:Entfernen Sie alle Auffüllungszeichen „=“.

Der folgende Code implementiert diese Änderungen:

char[] padding = { '=' };
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');
Nach dem Login kopieren

Beachten Sie, dass padding als Array definiert ist, das „=“-Zeichen enthält.

Dekodierungsprozess

Der Dekodierungsprozess ist wie folgt:

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);
Nach dem Login kopieren

Vergleich mit der Java-Codec-Bibliothek

Es muss weiter überprüft werden, ob dieser Ansatz mit Javas Ansatz der „gemeinsamen Codec-Bibliothek“ konsistent ist. Dies wäre eine interessante Richtung zum Testen.

Das obige ist der detaillierte Inhalt vonWie kann man Strings für Base64-URL-Safe in C#codieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage