0

我试图通过提供模数和指数在我的 powershell 脚本中进行 RSA 加密,并且我已将其部署在 azure 自动化 Runbook 中。

function Get-EncryptedString($certPass) 
{
    Write-Output "Getting Encrypted String."    

    $rsa = New-Object System.Security.Cryptography.RSACryptoServiceProvider
    $parameters = New-Object System.Security.Cryptography.RSAParameters
    $parameters.Modulus = $script:secretKey.Key.N
    $parameters.Exponent = $script:secretKey.Key.E
    $rsa.ImportParameters($parameters)    
    $byteData = [System.Text.Encoding]::Unicode.GetBytes($certPass)
    $encryptedData = $rsa.Encrypt($byteData, $true)
    $result = [System.Convert]::ToBase64String($encryptedData)

    Write-Output "Encrypted String retrieved: $result"

    return $result
}

当我运行相同时,我收到以下错误

捕获的异常:System.Management.Automation.MethodInvocationException:使用“1”参数调用“ImportParameters”的异常:“错误数据。

" ---> System.Security.Cryptography.CryptographicException:错误数据。

在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 小时)

在 System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP,Int32 keyNumber,CspProviderFlags 标志,对象 cspObject,SafeKeyHandle & hKey)

在 System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters 参数)

在 CallSite.Target(闭包,CallSite,对象,对象)

--- 内部异常堆栈跟踪结束 ---

在 System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext,异常异常)

在 System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame 框架)

在 System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame 框架)

在 System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame 框架)

4

0 回答 0