Encryption RSA非对称加密/解密-正在使用哪个密钥

Encryption RSA非对称加密/解密-正在使用哪个密钥,encryption,rsa,encryption-asymmetric,Encryption,Rsa,Encryption Asymmetric,使用以下代码创建公钥/私钥时: // 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 RS

使用以下代码创建公钥/私钥时:

    // 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(..)

“在每种情况下使用公钥还是私钥取决于应用程序。“不是。这是错误的。RSA加密只能用公钥,用私钥解密。@ MartinBonner -签署另一种方式。SigDATA()用私钥加密散列。谢谢。这是完美的,我希望的。”亨克有点。一般来说,认为“签名”是错误的。“用公钥加密”(虽然数值操作与RSA相同)。那么为什么这样做是错误的?(并且你有一个公有/私有类型)。“并指出这是错误的。谢谢,这是完美的,也是我所希望的。”。