Maison >développement back-end >C++ >Comment réaliser le codage et le décodage de base64 en matière de base de l'URL en C #?

Comment réaliser le codage et le décodage de base64 en matière de base de l'URL en C #?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-25 03:07:11906parcourir

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

Encodage Base64 sécurisé pour les URL en C#

L'encodage Base64 est essentiel pour garantir l'intégrité et la lisibilité des données lors de l'utilisation d'applications basées sur des URL. En C#, la fonctionnalité d'encodage Base64 intégrée offre un moyen pratique de convertir des données binaires en une représentation textuelle. Cependant, il ajoute des caractères de remplissage ("==") à la chaîne codée, ce qui peut poser des problèmes lorsqu'elle est utilisée dans les URL.

Encodage de sécurité des URL

Pour surmonter cette limitation, le codage sécurisé pour les URL supprime les caractères de remplissage et remplace les caractères problématiques spécifiques (" ","/","=") par des caractères adaptés aux URL ("-","_","") . Cela garantit que les chaînes codées peuvent être transférées en toute sécurité dans les paramètres d'URL sans provoquer de problèmes d'interprétation.

Implémentation du codage sécurisé des URL en C#

Contrairement à la bibliothèque de codecs de Java, C# n'a pas de fonctions intégrées d'encodage sécurisé pour les URL. Cependant, vous pouvez obtenir les mêmes résultats en quelques étapes simples :

  1. Utilisez Convert.ToBase64String() pour effectuer un encodage Base64 régulier.
  2. Utilisez TrimEnd() pour supprimer le remplissage des chaînes codées.
  3. Remplacez les caractères problématiques par Replace() (par exemple, remplacez " " par "-" et "/" par "_").

Exemple

<code class="language-csharp">byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(new char[] {'='}).Replace('+', '-').Replace('/', '_');</code>

Remarque : Vous pouvez définir le tableau de caractères de remplissage comme un champ statique en lecture seule pour une efficacité améliorée.

Inverser le processus

Pour décoder une chaîne codée sécurisée pour les URL vers sa forme originale, inversez simplement ce processus :

  1. Remplacez les caractères adaptés aux URL par leurs homologues d'origine.
  2. Remplissez la chaîne à un multiple de 4 avec des caractères '=' si nécessaire.
  3. Utilisez Convert.FromBase64String() pour reconvertir la chaîne en données binaires.

Exemple

<code class="language-csharp">string incoming = returnValue
    .Replace('_', '/').Replace('-', '+');
switch(incoming.Length % 4) {
    case 2: incoming += "=="; break;
    case 3: incoming += "="; break;
}
byte[] bytes = Convert.FromBase64String(incoming);
string originalText = Encoding.ASCII.GetString(bytes);</code>

En combinant ces étapes, vous pouvez implémenter efficacement un codage sécurisé pour les URL en C#. Il est important de tester si les méthodes des bibliothèques de codecs couramment utilisées sont cohérentes avec cette implémentation afin de garantir la compatibilité dans les scénarios où l'interopérabilité est requise.

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