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

byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
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 :

char[] padding = { '=' };
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');
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 :

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);
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!

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