gpt4 book ai didi

powershell - 使用 x509 证书通过 PowerShell 解密使用 OpenSSL 加密的文本

转载 作者:太空宇宙 更新时间:2023-11-03 14:38:23 27 4
gpt4 key购买 nike

我希望设置一个 PowerShell 脚本来解密在 Linux 环境中使用 OpenSSL 使用证书公钥加密的 secret 。

带有用于解密的私钥的证书位于 Windows 本地计算机证书存储中。

到目前为止,我已经尝试使用[Security.Cryptography.RSACryptoServiceProvider].PrivateKey.Decrypt 从加密文件中解密字节,但填充出现错误

$mycert.PrivateKey.Decrypt($bytes, $true)
Exception calling "Decrypt" with "2" argument(s): "Error occurred while decoding OAEP padding."
At line:1 char:1
+ $mycert.PrivateKey.Decrypt($bytes, $true)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : CryptographicException

我能得到一些关于如何解决这个密码异常的指示吗?

包含密文的文件是在 Linux 中使用以下示例 openssl 命令生成的:

echo " Secret Text" | openssl rsautl -encrypt -inkey publickey.pem -pubin > secret.enc

它可以用 OpenSSL 很好地解密,但我们在尝试 PowerShell 时总是遇到同样的错误。

最佳答案

openssl rsautl,没有 -oaep 标志,执行 PKCSv1_1.5 填充,这对应于 中的 false 值>Decrypt 您正在调用的方法。

切线:如果您可以在 powershell 范围内访问 .NET 4.6 API,您可以通过将 cert.PrivateKey 转换为 RSACryptoServiceProvider 来调用 cert.GetRSAPrivateKey() 并使用较新的 RSA.Decrypt(data, RSAEncryptionPadding.Pkcs1)。有些证书/ key 旧方法不起作用,而新方法可以。

关于powershell - 使用 x509 证书通过 PowerShell 解密使用 OpenSSL 加密的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45576949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com