PowerShellでBase64のエンコード・デコードを行う

toc目次

はじめに

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)と同じ画像となります。