PowerShell Encryption

PowerShell Encryption

PowerShell is how a lot of Windows (and increasingly cross-platform) admins automate installs, Azure tasks, and Exchange hygiene. Scripts and modules are plain text on disk unless you package them; signed scripts still reveal every literal to whoever can read the file.

Service account passwords, PAT tokens, and internal API endpoints often get pasted into .ps1 files because it is faster than wiring a vault. StringEncrypt gives you PowerShell that decrypts those strings at runtime so a shared repo or a copied module is less of an open book.

String encryption supports both UNICODE and ANSI strings.

PowerShell encryption (UNICODE Example)

Plaintext reference: StringEncrypt sample

# encrypted with https://www.stringencrypt.com (v1.5.0) [PowerShell]
# $myString = "StringEncrypt sample"
[uint16[]] $YdhXm = 0xAB25, 0x15C9, 0x54B5, 0x8A8F, 0x5557, 0x94C7, 0x0F98, 0xB641,
                    0xA3EF, 0xB620, 0x8C18, 0x4A9E, 0xAB10, 0x512D, 0x1415, 0xF93F,
                    0xDAAD, 0x7063, 0x0D4F, 0x643D
[string] $myString = ""

for ($ZBuCt = 0; $ZBuCt -lt 20; $ZBuCt++)
{
  $Dvgyz = $YdhXm[$ZBuCt]
  for ($EhWcr = 0; $EhWcr -lt 2; $EhWcr++)
  {
    $Dvgyz = ($Dvgyz -bxor (($Dvgyz -band 0xFFFF) -shr 15)) -band 0xFFFF
  }
  for ($qlRMe = 0; $qlRMe -lt 4; $qlRMe++)
  {
    $Dvgyz = ($Dvgyz -bxor 0xEF56) -band 0xFFFF
    $Dvgyz = (($Dvgyz -band 0xFFFF) - $ZBuCt) -band 0xFFFF
  }
  for ($fwUMK = 0; $fwUMK -lt 3; $fwUMK++)
  {
    $Dvgyz = (($Dvgyz -band 0xFFFF) - 1) -band 0xFFFF
    $Dvgyz = (($Dvgyz -band 0xFFFF) + 1) -band 0xFFFF
  }
  for ($jlXkL = 0; $jlXkL -lt 3; $jlXkL++)
  {
    for ($oQpUI = 0; $oQpUI -lt 3; $oQpUI++)
    {
      $Dvgyz = (($Dvgyz -band 0xFFFF) + $ZBuCt) -band 0xFFFF
      $Dvgyz = ((($Dvgyz -band 0xFFFF) -shl ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shr (16 - ($ZBuCt % 16)))) -band 0xFFFF
      for ($kasZR = 0; $kasZR -lt 4; $kasZR++)
      {
        $Dvgyz = ((($Dvgyz -band 0xFFFF) -bxor 0xFFFF) + 1) -band 0xFFFF
        $Dvgyz = (($Dvgyz -band 0xFFFF) - 1) -band 0xFFFF
      }
    }
    $Dvgyz = ((($Dvgyz -band 0xFFFF) -shr 8) -bor (($Dvgyz -band 0xFFFF) -shl 8)) -band 0xFFFF
  }
  $Dvgyz = ((($Dvgyz -band 0xFFFF) -bxor 0xFFFF) + 1) -band 0xFFFF
  for ($IiAVB = 0; $IiAVB -lt 4; $IiAVB++)
  {
    $Dvgyz = ((($Dvgyz -band 0xFFFF) -shr 1) -bor (($Dvgyz -band 0xFFFF) -shl 15)) -band 0xFFFF
    $Dvgyz = ((($Dvgyz -band 0xFFFF) -shr ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shl (16 - ($ZBuCt % 16)))) -band 0xFFFF
  }
  $Dvgyz = (($Dvgyz -band 0xFFFF) - 1) -band 0xFFFF
  $Dvgyz = ((($Dvgyz -band 0xFFFF) -shl ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shr (16 - ($ZBuCt % 16)))) -band 0xFFFF
  for ($uVDfa = 0; $uVDfa -lt 3; $uVDfa++)
  {
    $Dvgyz = (($Dvgyz -band 0xFFFF) - 0x0BDF) -band 0xFFFF
  }
  for ($Luqgn = 0; $Luqgn -lt 2; $Luqgn++)
  {
    $Dvgyz = ((($Dvgyz -band 0xFFFF) -shl ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shr (16 - ($ZBuCt % 16)))) -band 0xFFFF
    for ($UTJGB = 0; $UTJGB -lt 4; $UTJGB++)
    {
      $Dvgyz = ($Dvgyz -bxor 0x1FC1) -band 0xFFFF
      $Dvgyz = ($Dvgyz -bxor 0xFFFF) -band 0xFFFF
    }
    for ($MmKQH = 0; $MmKQH -lt 2; $MmKQH++)
    {
      $Dvgyz = ($Dvgyz -bxor $ZBuCt) -band 0xFFFF
      for ($lwVxR = 0; $lwVxR -lt 4; $lwVxR++)
      {
        $Dvgyz = ((($Dvgyz -band 0xFFFF) -shr ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shl (16 - ($ZBuCt % 16)))) -band 0xFFFF
        $Dvgyz = ($Dvgyz -bxor $ZBuCt) -band 0xFFFF
        $Dvgyz = (($Dvgyz -band 0xFFFF) + 0xB1FC) -band 0xFFFF
      }
      $Dvgyz = (($Dvgyz -band 0xFFFF) - $ZBuCt) -band 0xFFFF
    }
  }
  for ($mEoYP = 0; $mEoYP -lt 4; $mEoYP++)
  {
    $Dvgyz = ($Dvgyz -bxor ((($Dvgyz -band 0xFFFF) -shl 14) -band 0xFFFF)) -band 0xFFFF
    for ($gJihS = 0; $gJihS -lt 4; $gJihS++)
    {
      for ($kxnRG = 0; $kxnRG -lt 4; $kxnRG++)
      {
        $Dvgyz = (($Dvgyz -band 0xFFFF) + 1) -band 0xFFFF
        $Dvgyz = (($Dvgyz -band 0xFFFF) + 0x7A86) -band 0xFFFF
      }
      $Dvgyz = (($Dvgyz -band 0xFFFF) - $ZBuCt) -band 0xFFFF
      $Dvgyz = ((($Dvgyz -band 0xFFFF) -shr ($ZBuCt % 16)) -bor (($Dvgyz -band 0xFFFF) -shl (16 - ($ZBuCt % 16)))) -band 0xFFFF
    }
  }
  $Dvgyz = (($Dvgyz -band 0xFFFF) - 0xFB34) -band 0xFFFF
  $Dvgyz = (($Dvgyz -band 0xFFFF) - $ZBuCt) -band 0xFFFF
  $Dvgyz = ($Dvgyz -bxor $ZBuCt) -band 0xFFFF
  $myString += [char]($Dvgyz -band 0xFFFF)
}

PowerShell encryption (ANSI Example)

Plaintext reference: StringEncrypt sample

# encrypted with https://www.stringencrypt.com (v1.5.0) [PowerShell]
# $myString = "StringEncrypt sample"
[byte[]] $FhUnS = 0xC2, 0x75, 0xD9, 0x87, 0xB5, 0xB8, 0x01, 0xE9,
                  0x2A, 0xBC, 0xE5, 0x5F, 0x9D, 0x22, 0x90, 0x58,
                  0xB1, 0x2E, 0x2F, 0xAF
[string] $myString = ""

for ($WJFZl = 0; $WJFZl -lt 20; $WJFZl++)
{
  $HKaJP = $FhUnS[$WJFZl]
  $HKaJP = (($HKaJP -band 0xFF) + 1) -band 0xFF
  for ($pFGyY = 0; $pFGyY -lt 4; $pFGyY++)
  {
    for ($kDwJF = 0; $kDwJF -lt 2; $kDwJF++)
    {
      $HKaJP = ($HKaJP -bxor 0xFF) -band 0xFF
      $HKaJP = ((($HKaJP -band 0xFF) -bxor 0xFF) + 1) -band 0xFF
      $HKaJP = ((($HKaJP -band 0xFF) -shr 1) -bor (($HKaJP -band 0xFF) -shl 7)) -band 0xFF
    }
    for ($bHeun = 0; $bHeun -lt 3; $bHeun++)
    {
      $HKaJP = (($HKaJP -band 0xFF) - 1) -band 0xFF
      for ($rzeUf = 0; $rzeUf -lt 2; $rzeUf++)
      {
        $HKaJP = ((($HKaJP -band 0xFF) -bxor 0xFF) + 1) -band 0xFF
        $HKaJP = (($HKaJP -band 0xFF) - 1) -band 0xFF
        $HKaJP = (($HKaJP -band 0xFF) + 1) -band 0xFF
      }
    }
    $HKaJP = ($HKaJP -bxor (($HKaJP -band 0xFF) -shr 4)) -band 0xFF
  }
  for ($QyBcl = 0; $QyBcl -lt 4; $QyBcl++)
  {
    for ($PpWnd = 0; $PpWnd -lt 2; $PpWnd++)
    {
      $HKaJP = ((($HKaJP -band 0xFF) -shr 2) -bor (($HKaJP -band 0xFF) -shl 6)) -band 0xFF
      $HKaJP = (($HKaJP -band 0xFF) + $WJFZl) -band 0xFF
      for ($cklOI = 0; $cklOI -lt 4; $cklOI++)
      {
        $HKaJP = ($HKaJP -bxor 0xFF) -band 0xFF
        $HKaJP = ($HKaJP -bxor 0x1F) -band 0xFF
        $HKaJP = ($HKaJP -bxor 0xFF) -band 0xFF
      }
    }
    $HKaJP = (($HKaJP -band 0xFF) + $WJFZl) -band 0xFF
    for ($ElpQo = 0; $ElpQo -lt 3; $ElpQo++)
    {
      for ($nyiBD = 0; $nyiBD -lt 3; $nyiBD++)
      {
        $HKaJP = ((($HKaJP -band 0xFF) -bxor 0xFF) + 1) -band 0xFF
        $HKaJP = ((($HKaJP -band 0xFF) -shr 2) -bor (($HKaJP -band 0xFF) -shl 6)) -band 0xFF
      }
    }
  }
  $HKaJP = ($HKaJP -bxor ((($HKaJP -band 0xFF) -shl 5) -band 0xFF)) -band 0xFF
  for ($LmEoT = 0; $LmEoT -lt 3; $LmEoT++)
  {
    for ($mqyHr = 0; $mqyHr -lt 3; $mqyHr++)
    {
      $HKaJP = ((($HKaJP -band 0xFF) -shr 4) -bor (($HKaJP -band 0xFF) -shl 4)) -band 0xFF
      for ($TgiKw = 0; $TgiKw -lt 4; $TgiKw++)
      {
        $HKaJP = ((($HKaJP -band 0xFF) -bxor 0xFF) + 1) -band 0xFF
        $HKaJP = ($HKaJP -bxor 0xED) -band 0xFF
      }
    }
    for ($wfSru = 0; $wfSru -lt 3; $wfSru++)
    {
      $HKaJP = ($HKaJP -bxor 0xFF) -band 0xFF
      for ($vUrmD = 0; $vUrmD -lt 2; $vUrmD++)
      {
        $HKaJP = ((($HKaJP -band 0xFF) -shr ($WJFZl % 8)) -bor (($HKaJP -band 0xFF) -shl (8 - ($WJFZl % 8)))) -band 0xFF
      }
      for ($FwpeW = 0; $FwpeW -lt 4; $FwpeW++)
      {
        $HKaJP = (($HKaJP -band 0xFF) + $WJFZl) -band 0xFF
        $HKaJP = ($HKaJP -bxor ((($HKaJP -band 0xFF) -shl 5) -band 0xFF)) -band 0xFF
        $HKaJP = ((($HKaJP -band 0xFF) -shl ($WJFZl % 8)) -bor (($HKaJP -band 0xFF) -shr (8 - ($WJFZl % 8)))) -band 0xFF
      }
    }
  }
  for ($NPMFa = 0; $NPMFa -lt 2; $NPMFa++)
  {
    $HKaJP = (($HKaJP -band 0xFF) + 1) -band 0xFF
  }
  for ($CSTuL = 0; $CSTuL -lt 4; $CSTuL++)
  {
    $HKaJP = (($HKaJP -band 0xFF) + 0x08) -band 0xFF
    $HKaJP = ($HKaJP -bxor 0x6C) -band 0xFF
  }
  $HKaJP = ((($HKaJP -band 0xFF) -bxor 0xFF) + 1) -band 0xFF
  for ($uDwhX = 0; $uDwhX -lt 4; $uDwhX++)
  {
    for ($wJEtH = 0; $wJEtH -lt 4; $wJEtH++)
    {
      for ($cuGYm = 0; $cuGYm -lt 2; $cuGYm++)
      {
        $HKaJP = ($HKaJP -bxor $WJFZl) -band 0xFF
        $HKaJP = ($HKaJP -bxor 0x9B) -band 0xFF
      }
      for ($CaihZ = 0; $CaihZ -lt 4; $CaihZ++)
      {
        $HKaJP = ((($HKaJP -band 0xFF) -shr 1) -bor (($HKaJP -band 0xFF) -shl 7)) -band 0xFF
      }
      $HKaJP = ($HKaJP -bxor ((($HKaJP -band 0xFF) -shl 6) -band 0xFF)) -band 0xFF
    }
    for ($NWEfx = 0; $NWEfx -lt 4; $NWEfx++)
    {
      $HKaJP = (($HKaJP -band 0xFF) + $WJFZl) -band 0xFF
    }
  }
  $myString += [char]($HKaJP -band 0xFF)
}