There are no default functions available in PowerShell for encoding and decoding base 64 strings. However, the .NET libraries contain this. Here are two wrapper functions ConvertFrom-Base64 and ConvertTo-Base64 that you can use to make this easier.
function ConvertTo-Base64 { [CmdletBinding(DefaultParameterSetName='String')] [OutputType([String])] Param ( # String to convert to base64 [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromRemainingArguments=$false, Position=0, ParameterSetName='String')] [ValidateNotNull()] [ValidateNotNullOrEmpty()] [string] $String, # Param2 help description [Parameter(ParameterSetName='ByteArray')] [ValidateNotNull()] [ValidateNotNullOrEmpty()] [byte[]] $ByteArray ) if($String) { return [System.Convert]::ToBase64String(([System.Text.Encoding]::UTF8.GetBytes($String))); } else { return [System.Convert]::ToBase64String($ByteArray); } } function ConvertFrom-Base64 { [CmdletBinding()] Param( [Parameter(Mandatory=$True, Position=0, ValueFromPipeline=$true)] [ValidateNotNull()] [ValidateNotNullOrEmpty()] [string] $Base64String ) return [System.Text.Encoding]::UTF8.GetString(([System.Convert]::FromBase64String($Base64String))); }
These two functions are a part of my PowerShell $profile, which I will create an article about later.