当我使用以下代码创建公钥/私钥时:
// Create the CspParameters object and set the key container
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;
// Create a new instance of RSACryptoServiceProvider that accesses
// the key container MyKeyContainerName.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);
如果我再打电话
rsa.Encrypt (....
OR
rsa.Decrypt(..
我如何知道正在使用哪个密钥。在每种情况下是使用公钥还是私钥取决于应用程序。如何确定使用哪个?
使用公钥完成加密,并使用私钥完成解密。因此只有私钥的持有者才能解密。
您不打算使用公钥解密,因此接口不会为您提供执行此操作的方法。
签名利用私钥加密,使用公钥解密+一些单向散列逻辑,但在这种情况下,接口只允许使用特定的签名方法(SignData(..)
和VerifyData(..)
)。