VB.NET Base64のエンコードとデコードのサンプル

VB.NETのBase64のエンコードとデコードを行うサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

サンプル Base64エンコードのサンプル
  Base64デコードのサンプル

Base64エンコードのサンプル

Public Shared Function ToBase64String(inArray() As Byte) As String
Public Shared Function Encode(arg As String) As String
  • Base64とは、64種類の英数字で行うエンコード方式です。通信などで使われます。
  • URLセーフにする場合、変換後の文字列でプラス(+)とスラッシュ(/)をマイナス(-)とアンダスコア(_)に変換する必要があります。=は削除します。
  • URLセーフの場合は、Base64UrlEncoderクラスのEncodeを使用します。
  • 以下はMicroSoftのBase64UrlEncoder Classのリンクです。
    https://docs.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.tokens.base64urlencoder?view=azure-dotnet

URLセーフでないエンコードのサンプル

Imports System.Text

Module Module1
	Sub Main()
		Dim str1 = "PHP  コミュニティ 会社1"

		Dim str2 =
			Convert.ToBase64String(Encoding.UTF8.GetBytes(str1))
		Console.WriteLine(str2)
		'UEhQICDjgrPjg5/jg6Xjg4vjg4bjgqMg5Lya56S+MQ==
	End Sub
End Module

10行目は、変換後の文字列にスラッシュ(/)とプラス(+)がありURLの場合は意味を持ってしまいます。イコール(=)は、パディングです。余った部分を詰めています。

URLセーフのエンコードのサンプル

Imports Microsoft.IdentityModel.Tokens

Module Module1
	Sub Main()
		Dim str1 = "PHP  コミュニティ 会社1"

		Dim str2 = Base64UrlEncoder.Encode(str1)

		Console.WriteLine(str2)
		'UEhQICDjgrPjg5_jg6Xjg4vjg4bjgqMg5Lya56S-MQ
	End Sub
End Module

10行目は、URLで意味を持たない文字にエンコードされています。

Base64UrlEncoderを使用する場合

Base64UrlEncoderにカーソルを当ててMicrosoft.IdentityModel.Tokensをインストールします。

Base64デコードのサンプル

public static byte[] FromBase64String(string s);
Public Shared Function Decode(arg As String) As String

URLセーフでない文字列をデコードするサンプル

Imports System.Text

Module Module1
	Sub Main()
		Dim str1 = "UEhQICDjgrPjg5/jg6Xjg4vjg4bjgqMg5Lya56S+MQ=="

		Dim str2 = Encoding.UTF8.GetString(Convert.FromBase64String(str1))

		Console.WriteLine(str2) 'PHP  コミュニティ 会社1
	End Sub
End Module

5行目は、URLセーフではない文字列です。

URLセーフの文字列をデコードするサンプル

Imports Microsoft.IdentityModel.Tokens

Module Module1
	Sub Main()
		Dim str1 = "UEhQICDjgrPjg5_jg6Xjg4vjg4bjgqMg5Lya56S-MQ"

		Dim str2 = Base64UrlEncoder.Decode(str1)

		Console.WriteLine(str2) 'PHP  コミュニティ 会社1
	End Sub
End Module

5行目は、URLセーフの文字列です。

関連の記事

VB.NET ハッシュ値を取得するサンプル

△上に戻る