PowerShellでBase64のエンコード・デコードを行う
目次
はじめに
PowerShellでBase64のエンコード・デコードを行う方法のメモです。
Base64とは
Base64は、バイナリデータをテキスト形式に変換するエンコード方式です。
Base64では、データを64種類の印字可能なASCII文字(大文字A-Z
、小文字a-z
、数字0-9
、記号+/
)とパディング(=
)で表現します。
Base64でエンコードを行う
[Convert]::ToBase64String
メソッドを使用することでBase64エンコードを行うことができます。
[Convert]::ToBase64String([IO.File]::ReadAllBytes("{入力ファイル}")) | Out-File "{出力ファイル}" -Encoding UTF8
画像ファイル(sample.png
)をエンコードし、base64.txt
に出力する例
PS > $inputFile = "C:\Sample\sample.png"
PS > $outputFile = "C:\Sample\base64.txt"
PS > [Convert]::ToBase64String([IO.File]::ReadAllBytes($inputFile)) | Out-File $outputFile -Encoding UTF8
出力されるファイル
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEX///9obxL8...
Base64でデコードを行う
[Convert]::FromBase64String
メソッドを使用することでBase64デコードを行うことができます。
[IO.File]::WriteAllBytes("{出力ファイル}", [Convert]::FromBase64String([IO.File]::ReadAllText("{入力ファイル}")))
Base64でエンコードしたファイル(base64.txt
)をデコードし、sample2.png
に出力する例
PS > $inputFile = "C:\Sample\base64.txt"
PS > $outputFile = "C:\Sample\sample2.png"
PS > [IO.File]::WriteAllBytes($outputFile, [Convert]::FromBase64String([IO.File]::ReadAllText($inputFile)))
デコードしたファイル(sample2.png
)は元の画像ファイル(sample.png
)と同じ画像となります。