Functions/Private/UnProtect-Rijndael256ECB.ps1
function UnProtect-Rijndael256ECB { [cmdletbinding()] param( [STRING]$Key, [string]$CipherText ) $RijndaelProvider = New-Object -TypeName System.Security.Cryptography.RijndaelManaged $RijndaelProvider.BlockSize = 256 $RijndaelProvider.Mode = [System.Security.Cryptography.CipherMode]::ECB $RijndaelProvider.Key = [system.Text.Encoding]::default.GetBytes($key) $RijndaelProvider.Padding = [system.security.cryptography.PaddingMode]::Zeros; $RijndaelProvider.IV = [byte[]]@(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) $Decryptor = $RijndaelProvider.CreateDecryptor($RijndaelProvider.Key, $RijndaelProvider.IV) # Reverse process: Base64Decode first, then populate memory stream with ciphertext and lastly read decrypted data through cryptostream $Cipher = [convert]::FromBase64String($CipherText) -as [byte[]] $DecMemoryStream = New-Object System.IO.MemoryStream -ArgumentList @(, $Cipher) $DecCryptoStream = New-Object System.Security.Cryptography.CryptoStream -ArgumentList $DecMemoryStream, $Decryptor, $([System.Security.Cryptography.CryptoStreamMode]::Read) $DecStreamWriter = New-Object System.IO.StreamReader -ArgumentList $DecCryptoStream $NewPlainText = $DecStreamWriter.ReadToEnd() $DecStreamWriter.Close() $DecCryptoStream.Close() $DecMemoryStream.Close() return $NewPlainText } |