91 lines
1.9 KiB
Markdown
91 lines
1.9 KiB
Markdown
|
|
## Description
|
|
|
|
This function Encodes AND Decodes a File OR String
|
|
|
|
## The Function
|
|
|
|
### [B64]
|
|
|
|
This funtion takes 1 parameter with 4 versions:
|
|
|
|
[encFile] - encode file
|
|
|
|
[encString] - encode string
|
|
|
|
[decFile] - decode file
|
|
|
|
[decString] - decode string
|
|
|
|
***
|
|
|
|
## [SYNTAX]
|
|
|
|
### Encode a File
|
|
|
|
`B64 -encFile "C:\Users\User\Desktop\example.txt"`
|
|
|
|
### Decode a File
|
|
|
|
`B64 -decFile "C:\Users\User\Desktop\example.txt"`
|
|
|
|
WARNING! When working with strings you have to wrap it in SINGLE QUOTES!
|
|
|
|
### Encode a String
|
|
|
|
`B64 -encString 'start notepad'`
|
|
|
|
### Decode a String
|
|
|
|
`B64 -decString 'cwB0AGEAcgB0ACAAbgBvAHQAZQBwAGEAZAA='`
|
|
|
|
### Copy out-put directly to clipboard with the following syntax:
|
|
|
|
COMMAND | clip
|
|
|
|
***
|
|
|
|
```PowerShell
|
|
function B64 {
|
|
[CmdletBinding(DefaultParameterSetName="encFile")]
|
|
param(
|
|
[Parameter(Position=0, ParameterSetName="encFile")]
|
|
[Alias("ef")]
|
|
[string]$encFile,
|
|
|
|
[Parameter(Position=0, ParameterSetName="encString")]
|
|
[Alias("es")]
|
|
[string]$encString,
|
|
|
|
[Parameter(Position=0, ParameterSetName="decFile")]
|
|
[Alias("df")]
|
|
[string]$decFile,
|
|
|
|
[Parameter(Position=0, ParameterSetName="decString")]
|
|
[Alias("ds")]
|
|
[string]$decString
|
|
|
|
)
|
|
|
|
if ($psCmdlet.ParameterSetName -eq "encFile") {
|
|
$encoded = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes((Get-Content -Path $encFile -Raw -Encoding UTF8)))
|
|
return $encoded
|
|
}
|
|
|
|
elseif ($psCmdlet.ParameterSetName -eq "encString") {
|
|
$encoded = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($encString))
|
|
return $encoded
|
|
}
|
|
|
|
elseif ($psCmdlet.ParameterSetName -eq "decFile") {
|
|
$data = Get-Content $decFile
|
|
$decoded = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data))
|
|
return $decoded
|
|
}
|
|
|
|
elseif ($psCmdlet.ParameterSetName -eq "decString") {
|
|
$decoded = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($decString))
|
|
return $decoded
|
|
}
|
|
}
|
|
``` |