HOWTO · Csharp

How to Encode and Decode a Base64 String in C#

The Convert class can be used to encode a standard string to a base64 string and decode a base64 string to a standard string in C#.

On this page

This tutorial will discuss methods to encode and decode a base64 string in C#.

Encode a String to a Base64 String With the Convert.ToBase64String() Method in C#

The Convert class can convert one base data type to another base data type in C#. The Convert.ToBase64String() method converts an array of bytes to a base64 string variable in C#. To convert a string variable to a base64 string, we must first convert that string to an array of bytes. The Encoding.UTF8.GetBytes() method is converts a string variable to an array of bytes in C#. The following code example shows us how we can encode a string variable to a base64 string with the Convert.ToBase64String() function in C#.

using System;
using System.Text;

namespace encode_and_decode_base64_string {
  class Program {
    public static string Base64Encode(string plainText) {
      var plainTextBytes = Encoding.UTF8.GetBytes(plainText);
      return System.Convert.ToBase64String(plainTextBytes);
    }
    static void Main(string[] args) {
      string original = "This is a string";
      Console.WriteLine("Original String = " + original);
      string base64 = Base64Encode(original);
      Console.WriteLine("Encoded String = " + base64);
    }
  }
}

Output:

Original String = This is a string
Encoded String = VGhpcyBpcyBhIHN0cmluZw==

We encoded the string variable original with the value This is a string to the base64 string base64 with the value VGhpcyBpcyBhIHN0cmluZw==. We first converted the string plainText to the bytes array plainTextBytes with the Encoding.UTF8.GetBytes(plainText) function. We encoded the bytes array plainTextBytes to the base64 string with the Convert.ToBase64String(plainTextBytes) function.

Decode a String From a Base64 String With the Convert.FromBase64String() Method in C#

The Convert.FromBase64String() method can convert a base64 string variable to an array of bytes in C#. To convert a base64 encoded string to a standard string variable, we have to convert the array of bytes returned by the Convert.FromBase64String() method to a string variable using the Encoding.UTF8.GetString() method in C#. The following code example shows us how to decode a base64 string to a string variable with the Convert.FromBase64String() function in C#.

using System;
using System.Text;

namespace encode_and_decode_base64_string {
  class Program {
    public static string Base64Decode(string base64EncodedData) {
      var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
      return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
    }
    static void Main(string[] args) {
      string base64 = "VGhpcyBpcyBhIHN0cmluZw==";
      Console.WriteLine("Encoded String = " + base64);
      string original = Base64Decode(base64);
      Console.WriteLine("Decoded String = " + original);
    }
  }
}

Output:

Encoded String = VGhpcyBpcyBhIHN0cmluZw==
Decoded String = This is a string

We decoded the base64 string base64 with the value VGhpcyBpcyBhIHN0cmluZw== to the string variable original with the value This is a string. We first converted the base64EncodedData string to the bytes array base64EncodedBytes with the Convert.FromBase64String(base64EncodedData) function. We converted the bytes array base64EncodedBytes to the string variable original with the Encoding.UTF8.GetString(base64EncodedBytes) function.