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