Public/Common/CommonHelper.ps1

function Decrypt-String($Encrypted, $Passphrase, $salt = "Rijndael symmetric key encryption", $init = "BOS Encryption Algorithm") {
    if ($Encrypted -is [string]) {
        $Encrypted = [Convert]::FromBase64String($Encrypted)
    }

    $r = New-Object System.Security.Cryptography.RijndaelManaged
    $pass = [System.Text.Encoding]::UTF8.GetBytes($Passphrase)
    $salt = [System.Text.Encoding]::UTF8.GetBytes($salt)

    $r.Key = (New-Object Security.Cryptography.PasswordDeriveBytes $pass, $salt, "SHA1", 5).GetBytes(32) #256/8
    $r.IV = (New-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($init) )[0..15]

    $d = $r.CreateDecryptor()
    $ms = New-Object IO.MemoryStream @(, $Encrypted)
    $cs = New-Object Security.Cryptography.CryptoStream $ms, $d, "Read"
    $sr = New-Object IO.StreamReader $cs
   
    #If unable to decrypt string properly return error
    if ($sr.EndOfStream -eq $null) { return "###Invalid Decryption###&^%^&%" }
   
    $decrypt = $sr.ReadToEnd()
    $sr.Close()
    $cs.Close()
    $ms.Close()
    $r.Clear()
    return $decrypt
}

function Encrypt-String($String, $Passphrase, $salt = "Rijndael symmetric key encryption", $init = "BOS Encryption Algorithm", [switch]$arrayOutput) {
    $r = New-Object System.Security.Cryptography.RijndaelManaged
    $pass = [Text.Encoding]::UTF8.GetBytes($Passphrase)
    $salt = [Text.Encoding]::UTF8.GetBytes($salt)

    $r.Key = (New-Object Security.Cryptography.PasswordDeriveBytes $pass, $salt, "SHA1", 5).GetBytes(32) #256/8
    $r.IV = (New-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($init) )[0..15]
   
    $c = $r.CreateEncryptor()
    $ms = New-Object IO.MemoryStream
    $cs = New-Object Security.Cryptography.CryptoStream $ms, $c, "Write"
    $sw = New-Object IO.StreamWriter $cs
    $sw.Write($String)
    $sw.Close()
    $cs.Close()
    $ms.Close()
    $r.Clear()
    [byte[]]$result = $ms.ToArray()
    if ($arrayOutput) {
        return $result
    }
    else {
        return [Convert]::ToBase64String($result)
    }
}

$CommonColor = @{
    Red          = "#FF0000"
    Cyan         = "#00FFFF"
    Blue         = "#0000FF"
    purple       = "#800080"
    Yellow       = "#FFFF00"
    Lime         = "#00FF00"
    Magenta      = "#FF00FF"
    White        = "#FFFFFF"
    Silver       = "#C0C0C0"
    Gray         = "#808080"
    Black        = "#000000"
    Orange       = "#FFA500"
    Brown        = "#A52A2A"
    Maroom       = "#800000"
    Green        = "#008000"
    Olive        = "#808000"
    Pink         = "#FFC0CB"
    DarkBlue     = "#00008B"
    DarkCyan     = "#008B8B"
    DarkGray     = "#A9A9A9"
    DarkGreen    = "#006400"
    DarkMagenta  = "#8B008B"
    DarkOrange   = "#FF8C00"
    DarkRed      = "#8B0000"
    DeepPink     = "#FF1493"
    LightBlue    = "#ADD8E6"
    LightCyan    = "#E0FFFF"
    LightGray    = "#D3D3D3"
    LightGreen   = "#90EE90"
    LightYellow  = "#FFFFE0"
    MediumBlue   = "#0000CD"
    MediumPurple = "#9370DB"
    YellowGreen  = "#9ACD32"
}