RSA.Encrypt和RSA.EncryptValue之间的区别

问题描述

https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsa?view=netcore-3.1

我正在查看RSA的文档,但无法理解.Encrypt().EncryptValue()间的区别。我可以看到.Encrypt()使用指定的填充模式,但是使用私钥吗?对于.EncryptValue(),它表示使用公钥进行加密。

我想要一个功能,该功能 使用私钥加密 ,而另一个功能 使用公钥解密 >。

解决方法

我进行了更多研究,结果发现不支持方法调用(RSA.EncryptValue()),并且抛出了NotSupportedException

此外,RSA.Decrypt()使用私钥进行解密,但是RSA.Encrypt()使用公共 和私钥 进行加密,我不是确定为什么我将为此发布一个不同的问题。

最后,据我所知,该库确实支持签名(使用私钥加密)和验证(使用私钥解密),但仅返回一个布尔值,如果验证正确与否。没有使用公钥解密并提供数据的方法。