Public/ConvertTo-CWAASecurity.ps1
Function ConvertTo-CWAASecurity{ [CmdletBinding()] [Alias('ConvertTo-LTSecurity')] Param( [parameter(Mandatory = $true, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $false)] [AllowNull()] [AllowEmptyString()] [AllowEmptyCollection()] [string]$InputString, [parameter(Mandatory = $false, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $false)] [AllowNull()] [AllowEmptyString()] [AllowEmptyCollection()] $Key ) Begin { $_initializationVector = [byte[]](240, 3, 45, 29, 0, 76, 173, 59) $DefaultKey='Thank you for using LabTech.' If ($Null -eq $Key) { $Key=$DefaultKey } try { $numarray=[System.Text.Encoding]::UTF8.GetBytes($InputString) } catch { try { $numarray=[System.Text.Encoding]::ASCII.GetBytes($InputString) } catch {} } Write-Debug "Line $(LINENUM): Attempting Encode for '$($testInput)' with Key '$($testKey)'" try { $ddd = new-object System.Security.Cryptography.TripleDESCryptoServiceProvider $ddd.key=(new-Object Security.Cryptography.MD5CryptoServiceProvider).ComputeHash([Text.Encoding]::UTF8.GetBytes($Key)) $ddd.IV=$_initializationVector $dd=$ddd.CreateEncryptor() $str=[System.Convert]::ToBase64String($dd.TransformFinalBlock($numarray,0,($numarray.Length))) } catch { Write-Debug "Line $(LINENUM): Failed to Encode string: '$($InputString)'" $str='' } Finally { if ($dd) {try {$dd.Dispose()} catch {$dd.Clear()}} if ($ddd) {try {$ddd.Dispose()} catch {$ddd.Clear()}} } return $str } } |