Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Convert.FromBase64String méthode (String)

 

Date de publication : novembre 2016

Convertit la chaîne spécifiée, qui encode les données binaires en chiffres base 64, en tableau équivalent d'entiers non signés 8 bits.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public static byte[] FromBase64String(
	string s
)

Paramètres

s
Type: System.String

Chaîne à convertir.

Valeur de retour

Type: System.Byte[]

Tableau d'entiers non signés 8 bits équivalent à s.

Exception Condition
ArgumentNullException

s a la valeur null.

FormatException

La longueur de s, en ignorant les espaces blancs, n’est pas zéro ou un multiple de 4.

ou

Le format de s n’est pas valide. s contient un caractère qui n’est pas de base 64, plus de deux caractères de remplissage ou un caractère différent d’un espace blanc parmi les caractères de remplissage.

s est constitué de chiffres en base 64, les espaces blancs et les espaces de remplissage. Les chiffres en base 64 dans l’ordre croissant à partir de zéro sont les caractères majuscules « A » à « Z », les caractères minuscules « a » à « z », les chiffres « 0 » à « 9 », ainsi que les symboles « + » et « / ».

Les caractères d’espace blanc et que leurs noms Unicode et points de code hexadécimaux, sont onglet (CHARACTER TABULATION, U + 0009), saut de ligne (LINE FEED, U + 000D), retour chariot (retour chariot, U + 000D) et espace (SPACE, U + 0020). Un nombre arbitraire d’espaces blancs peut apparaître dans s car tous les espaces blancs sont ignorés.

Le caractère sans valeur, « = », est utilisé pour le remplissage à droite. La fin de s peut se composer de zéro, un ou deux caractères de remplissage.

System_CAPS_importantImportant

Le FromBase64Stringméthode est conçue pour traiter une chaîne unique qui contient toutes les données à décoder. Pour décoder les données caractères en base 64 à partir d’un flux de données, utilisez la System.Security.Cryptography.FromBase64Transform classe.

L’exemple suivant utilise le ToBase64String(Byte[]) méthode pour convertir un tableau d’octets en une chaîne encodée au format UUEncode (base 64), puis appelle la FromBase64String(String) méthode pour restaurer le tableau d’octets d’origine.

using System;

public class Example
{
   public static void Main()
   {
       // Define a byte array.
       byte[] bytes = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
       Console.WriteLine("The byte array: ");
       Console.WriteLine("   {0}\n", BitConverter.ToString(bytes));

       // Convert the array to a base 64 sring.
       String s = Convert.ToBase64String(bytes);
       Console.WriteLine("The base 64 string:\n   {0}\n", s);

       // Restore the byte array.
       byte[] newBytes = Convert.FromBase64String(s);
       Console.WriteLine("The restored byte array: ");
       Console.WriteLine("   {0}\n", BitConverter.ToString(newBytes));
   }
}
// The example displays the following output:
//     The byte array:
//        02-04-06-08-0A-0C-0E-10-12-14
//     
//     The base 64 string:
//        AgQGCAoMDhASFA==
//     
//     The restored byte array:
//        02-04-06-08-0A-0C-0E-10-12-14

Voici un exemple plus complexe qui crée un tableau de 20 éléments d’entiers 32 bits. Il utilise ensuite la BitConverter.GetBytes(Int32) méthode pour convertir chaque élément dans un tableau d’octets, qui est stocké dans la position appropriée dans une mémoire tampon en appelant le Array.Copy(Array, Int32, Array, Int32, Int32) (méthode). Cette mémoire tampon est ensuite transmis à la ToBase64String(Byte[]) méthode pour créer une chaîne encodée au format UUEncode (base-64). Il appelle ensuite la FromBase64String(String) méthode pour décoder la chaîne d’UUENCODE et appelle le BitConverter.ToInt32 méthode pour convertir un entier chaque ensemble de quatre octets (la taille d’un entier 32 bits). La sortie de l’exemple montre que le tableau d’origine a été restauré avec succès.

using System;

public class Example
{
   public static void Main()
   {
      // Define an array of 20 elements and display it.
      int[] arr = new int[20]; 
      int value = 1;
      for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++) {
         arr[ctr] = value;
         value = value * 2 + 1;
      }
      DisplayArray(arr);

      // Convert the array of integers to a byte array.
      byte[] bytes = new byte[arr.Length * 4];
      for (int ctr = 0; ctr < arr.Length; ctr++) {
         Array.Copy(BitConverter.GetBytes(arr[ctr]), 0, 
                    bytes, ctr * 4, 4);
      }

      // Encode the byte array using Base64 encoding
      String base64 = Convert.ToBase64String(bytes);
      Console.WriteLine("The encoded string: ");
      for (int ctr = 0; ctr <= base64.Length / 50; ctr++) 
         Console.WriteLine(base64.Substring(ctr * 50, 
                                            ctr * 50 + 50 <= base64.Length 
                                               ? 50 : base64.Length - ctr * 50));
      Console.WriteLine();

      // Convert the string back to a byte array.
      byte[] newBytes = Convert.FromBase64String(base64);

      // Convert the byte array back to an integer array.
      int[] newArr = new int[newBytes.Length/4];
      for (int ctr = 0; ctr < newBytes.Length / 4; ctr ++)
         newArr[ctr] = BitConverter.ToInt32(newBytes, ctr * 4);

      DisplayArray(newArr);
   }

   private static void DisplayArray(Array arr)
   {
      Console.WriteLine("The array:");
      Console.Write("{ ");
      for (int ctr = 0; ctr < arr.GetUpperBound(0); ctr++) {
         Console.Write("{0}, ", arr.GetValue(ctr));
         if ((ctr + 1) % 10 == 0) 
            Console.Write("\n  ");
      }
      Console.WriteLine("{0} {1}", arr.GetValue(arr.GetUpperBound(0)), "}");
      Console.WriteLine();
   }
}
// The example displays the following output:
// The array:
// { 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
//   2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575 }
// 
// The encoded string:
// AQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/w
// MAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8H
// 
// The array:
// { 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
//   2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575 }

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: