Maison > développement back-end > C++ > Comment encoder les chaînes de base de base64 URL-SAFE en C #?

Comment encoder les chaînes de base de base64 URL-SAFE en C #?

DDD
Libérer: 2025-01-25 03:26:09
original
666 Les gens l'ont consulté

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

Explication détaillée du codage de sécurité des URL Base64 en C#

L'encodage sécurisé pour les URL Base64 est une technique d'encodage d'URL couramment utilisée qui évite d'avoir à encoder les caractères en %. Cet article explique comment implémenter cet encodage en C#.

Comparaison des méthodes JavaScript

Java peut facilement implémenter un codage sécurisé pour les URL à l'aide de la bibliothèque Codec. Une approche similaire peut être adoptée avec C#.

Conversion Base64

Le code suivant montre comment convertir une chaîne en Base64 :

<code class="language-csharp">byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);</code>
Copier après la connexion

Cependant, cette méthode ajoute un double remplissage de signe égal (=) à la fin du résultat codé.

Implémenter le codage sécurisé des URL

Afin d'obtenir un codage sécurisé des URL, nous devons effectuer les étapes suivantes :

  1. Caractères de remplacement : Remplacez ' ' par '-' et '/' par '_'.
  2. Supprimer le remplissage : Supprimez tous les caractères de remplissage '='.

Le code suivant implémente ces modifications :

<code class="language-csharp">char[] padding = { '=' };
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>
Copier après la connexion

Notez que padding est défini comme un tableau contenant des caractères '='.

Processus de décodage

Le processus de décodage est le suivant :

<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>
Copier après la connexion

Comparaison avec la bibliothèque de codecs Java

Nécessite une vérification plus approfondie si cette approche est cohérente avec l'approche de la « bibliothèque de codecs commune » de Java. Ce serait une direction intéressante à tester.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal