Convert.FromBase64String(String) Convert.FromBase64String(String) Convert.FromBase64String(String) Convert.FromBase64String(String) Method

정의

base-64 숫자의 이진 데이터를 해당하는 8비트 부호 없는 정수 배열로 인코딩하는 방법으로 지정된 문자열을 변환합니다.Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array.

public:
 static cli::array <System::Byte> ^ FromBase64String(System::String ^ s);
public static byte[] FromBase64String (string s);
static member FromBase64String : string -> byte[]
Public Shared Function FromBase64String (s As String) As Byte()

매개 변수

s
String String String String

변환할 문자열입니다.The string to convert.

반환

Byte[]

s에 해당하는 8비트 부호 없는 정수 배열입니다.An array of 8-bit unsigned integers that is equivalent to s.

예외

공백 문자를 무시한 s의 길이가 0 또는 4의 배수가 아닙니다.The length of s, ignoring white-space characters, is not zero or a multiple of 4.

또는-or- s의 형식이 잘못되었습니다.The format of s is invalid. s에 Base-64가 아닌 문자 또는 세 개 이상의 패딩 문자가 있거나 패딩 문자 사이에 공백이 아닌 문자가 있습니다.s contains a non-base-64 character, more than two padding characters, or a non-white space-character among the padding characters.

예제

다음 예제에서는 합니다 ToBase64String(Byte[]) (base-64) Uuencode 된 문자열을 설정한 다음 호출을 바이트 배열로 변환 하는 방법의 FromBase64String(String) 원래 바이트 배열을 복원 하는 방법입니다.The following example uses the ToBase64String(Byte[]) method to convert a byte array to a UUencoded (base-64) string, and then calls the FromBase64String(String) method to restore the original byte array.

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 string.
       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
Module Example
   Public Sub Main()
       ' Define a byte array.
       Dim bytes As Byte() = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }
       Console.WriteLine("The byte array: ")
       Console.WriteLine("   {0}", BitConverter.ToString(bytes))
       Console.WriteLine()
       
       ' Convert the array to a base 64 string.
       Dim s As String = Convert.ToBase64String(bytes)
       Console.WriteLine("The base 64 string:{1}   {0}{1}", 
                         s, vbCrLf)
       
       ' Restore the byte array.
       Dim newBytes As Byte() = Convert.FromBase64String(s)
       Console.WriteLine("The restored byte array: ")
       Console.WriteLine("   {0}", BitConverter.ToString(newBytes))
       Console.WriteLine()
   End Sub
End Module
' 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

다음은 복잡 한 예는 32 비트 정수의 20 개의 요소 배열을 만듭니다.The following is a more complex example that creates a 20-element array of 32-bit integers. 사용 하 여는 BitConverter.GetBytes(Int32) 메서드를 호출 하 여 버퍼에서 적절 한 위치에 저장 되는 바이트 배열, 각 요소를 변환 하는 Array.Copy(Array, Int32, Array, Int32, Int32) 메서드.It then uses the BitConverter.GetBytes(Int32) method to convert each element into a byte array, which it stores in the appropriate position in a buffer by calling the Array.Copy(Array, Int32, Array, Int32, Int32) method. 이 버퍼에 전달 되는 ToBase64String(Byte[]) (base-64) Uuencode 된 문자열을 만드는 방법.This buffer is then passed to the ToBase64String(Byte[]) method to create a UUencoded (base-64) string. 그런 다음 호출 하는 FromBase64String(String) 호출와 UUencoded 문자열을 디코드 하는 방법의 BitConverter.ToInt32 각 집합이 4 바이트 (32 비트 정수 크기)을 정수로 변환 하는 방법.It then calls the FromBase64String(String) method to decode the UUencoded string, and calls the BitConverter.ToInt32 method to convert each set of four bytes (the size of a 32-bit integer) to an integer. 예제의 출력에 원본 배열을 성공적으로 복원 된 보여 줍니다.The output from the example shows that the original array has been successfully restored.

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 }
Module Example
   Public Sub Main()
      ' Define an array of 20 elements and display it.
      Dim arr(19) As Integer 
      Dim value As Integer = 1
      For ctr As Integer = 0 To arr.GetUpperBound(0)
         arr(ctr) = value
         value = value * 2 + 1
      Next
      DisplayArray(arr)

      ' Convert the array of integers to a byte array.
      Dim bytes(arr.Length * 4 - 1) As Byte 
      For ctr As Integer = 0 To arr.Length - 1
         Array.Copy(BitConverter.GetBytes(arr(ctr)), 0, 
                    bytes, ctr * 4, 4)
      Next
         
      ' Encode the byte array using Base64 encoding
      Dim base64 As String = Convert.ToBase64String(bytes)
      Console.WriteLine("The encoded string: ")
      For ctr As Integer = 0 To base64.Length \ 50 - 1 
         Console.WriteLine(base64.Substring(ctr * 50, 
                                            If(ctr * 50 + 50 <= base64.Length, 
                                               50, base64.Length - ctr * 50)))
      Next
      Console.WriteLine()
      
      ' Convert the string back to a byte array.
      Dim newBytes() As Byte = Convert.FromBase64String(base64)

      ' Convert the byte array back to an integer array.
      Dim newArr(newBytes.Length\4 - 1) As Integer
      For ctr As Integer = 0 To newBytes.Length \ 4 - 1
         newArr(ctr) = BitConverter.ToInt32(newBytes, ctr * 4)
      Next   
      DisplayArray(newArr)
   End Sub

   Private Sub DisplayArray(arr As Array)
      Console.WriteLine("The array:")
      Console.Write("{ ")
      For ctr As Integer = 0 To arr.GetUpperBound(0) - 1
         Console.Write("{0}, ", arr.GetValue(ctr))
         If (ctr + 1) Mod 10 = 0 Then Console.Write("{0}  ", vbCrLf)
      Next
      Console.WriteLine("{0} {1}", arr.GetValue(arr.GetUpperBound(0)), "}")
      Console.WriteLine()
   End Sub
End Module
' 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 }

설명

s base-64 숫자, 공백 문자와 후행 채움 문자가 구성 됩니다.s is composed of base-64 digits, white-space characters, and trailing padding characters. Base-64 숫자 0에서 오름차순 "z", 소문자 대문자 "A"는 "z", "0"에서 "9" 까지의 숫자를 "a" 및 기호 "+" 및 "/"입니다.The base-64 digits in ascending order from zero are the uppercase characters "A" to "Z", lowercase characters "a" to "z", numerals "0" to "9", and the symbols "+" and "/".

유니코드 이름을 공백 문자 및 16 진수 코드 포인트는 탭 (문자 집계, (u+0009), 줄 바꿈 (줄 바꿈, U + 000A), 캐리지 리턴 (캐리지 리턴, U+000d) 및 공백 (공간 U + 0020).The white-space characters, and their Unicode names and hexadecimal code points, are tab (CHARACTER TABULATION, U+0009), newline (LINE FEED, U+000A), carriage return (CARRIAGE RETURN, U+000D), and blank (SPACE, U+0020). 임의 개수의 공백 문자에 나타날 수 있습니다 s 모든 공백 문자 무시 되기 때문에 있습니다.An arbitrary number of white-space characters can appear in s because all white-space characters are ignored.

값이 없는 문자, "=" 뒤쪽 안쪽 여백에 사용 됩니다.The valueless character, "=", is used for trailing padding. s 0 개 또는 두 채움 문자가 구성 될 수 있습니다.The end of s can consist of zero, one, or two padding characters.

중요

FromBase64String 메서드는 디코딩할 모든 데이터가 포함 된 단일 문자열을 처리 하도록 설계 되었습니다.The FromBase64String method is designed to process a single string that contains all the data to be decoded. Base-64 문자 데이터 스트림에서 디코딩할 사용 된 System.Security.Cryptography.FromBase64Transform 클래스입니다.To decode base-64 character data from a stream, use the System.Security.Cryptography.FromBase64Transform class.

적용 대상

추가 정보