C#のBase64のエンコードとデコードを行うサンプルです。
確認環境 ・Microsoft Visual Studio Community 2019 |
目次
サンプル | Base64エンコードのサンプル |
Base64デコードのサンプル |
Base64エンコードのサンプル
public static string ToBase64String(byte[] inArray); |
public static string Encode(string arg); |
- Base64とは、64種類の英数字で行うエンコード方式です。通信などで使われます。
- URLエンコードの場合、変換後の文字列でプラス(+)とスラッシュ(/)をマイナス(-)とアンダスコア(_)に変換する必要があります。=は削除します。
- URLセーフの場合は、Base64UrlEncoderクラスのEncodeを使用します。
- 以下はMicroSoftのConvert.ToBase64String メソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.convert.tobase64string?view=net-5.0
URLセーフでないエンコードのサンプル
using System;
using System.Text;
class Test1
{
static void Main()
{
string str1 = "PHP コミュニティ 会社1";
string str2 =
Convert.ToBase64String(Encoding.UTF8.GetBytes(str1));
Console.WriteLine(str2);
//UEhQICDjgrPjg5/jg6Xjg4vjg4bjgqMg5Lya56S+MQ==
}
}
13行目は、変換後の文字列にスラッシュ(/)とプラス(+)がありURLの場合、意味を持ってしまいます。イコール(=)は、パディングです。余った部分を詰めています。
URLセーフのエンコードのサンプル
using Microsoft.IdentityModel.Tokens;
using System;
class Test1
{
static void Main()
{
string str1 = "PHP コミュニティ 会社1";
string str2 = Base64UrlEncoder.Encode(str1);
Console.WriteLine(str2);
//UEhQICDjgrPjg5_jg6Xjg4vjg4bjgqMg5Lya56S-MQ
}
}
13行目は、URLで意味を持たない文字にエンコードされています。
Base64UrlEncoderを使用する場合
Base64UrlEncoderにカーソルを当ててMicrosoft.IdentityModel.Tokensをインストールします。
Base64デコードのサンプル
public static byte[] FromBase64String(string s); |
public static string Decode(string arg); |
- Base64とは、64種類の英数字で行うエンコード方式です。通信などで使われます。
- デコードはエンコードされた文字列を元に戻します。
- URLセーフの場合は、Base64UrlEncoderクラスのDecodeを使用します。
- 以下はMicroSoftのConvert.ToBase64String メソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.convert.frombase64string?view=net-5.0
URLセーフでない文字列をデコードするサンプル
using System;
using System.Text;
class Test1
{
static void Main()
{
string str1 = "UEhQICDjgrPjg5/jg6Xjg4vjg4bjgqMg5Lya56S+MQ==";
string str2 = Encoding.UTF8
.GetString(Convert.FromBase64String(str1));
Console.WriteLine(str2);//PHP コミュニティ 会社1
}
}
8行目は、URLセーフではない文字列です。
URLセーフの文字列をデコードするサンプル
using Microsoft.IdentityModel.Tokens;
using System;
class Test1
{
static void Main()
{
string str1 = "UEhQICDjgrPjg5_jg6Xjg4vjg4bjgqMg5Lya56S-MQ";
string str2 = Base64UrlEncoder.Decode(str1);
Console.WriteLine(str2);//PHP コミュニティ 会社1
}
}
8行目は、URLセーフの文字列です。
関連の記事