VB.NETのBase64のエンコードとデコードを行うサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)
目次
サンプル | Base64エンコード(文字列をBase64にする) |
Base64デコード(Base64を文字列にする) |
Base64エンコード(文字列をBase64にする)
Public Shared Function ToBase64String(inArray() As Byte) As String |
Public Shared Function Encode(arg As String) As String |
- エンコード(テキスト形式→バイナリ形式)を行います。
- Base64は、64種類の英数字を使用します。通信などで使われます。
・アルファベット(a-z)の26文字と(A-Z)の26文字で52文字
・数字(0-9)の10文字
・記号の+と/の2文字
→52+10+2=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デコード(Base64を文字列にする)
public static byte[] FromBase64String(string s); |
Public Shared Function Decode(arg As String) As String |
- デコード(バイナリ形式→テキスト形式)を行います。
- Base64は、64種類の英数字を使用します。通信などで使われます。
・アルファベット(a-z)の26文字と(A-Z)の26文字で52文字
・数字(0-9)の10文字
・記号の+と/の2文字
→52+10+2=64文字
※上記に加えてパディングとして=も使用します。 - デコードはエンコードされた文字列を元に戻します。
- URLセーフの場合は、Base64UrlEncoderクラスのDecodeを使用します。
- 以下は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 = "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セーフの文字列です。
関連の記事