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

时间:2018-02-02 10:14:44

标签: 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 RSACryptoServiceProvider that accesses  
    // the key container MyKeyContainerName.  
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

如果我再打电话

    rsa.Encrypt (....
    OR
    rsa.Decrypt(..

我如何知道正在使用哪个密钥。在每种情况下是使用公钥还是私钥取决于应用程序。如何确定使用哪个?

1 个答案:

答案 0 :(得分:1)

加密使用公钥完成,解密使用私钥完成..因此只有私钥的持有者才能解密。

您不打算使用公钥解密,因此界面无法为您提供实现此目的的方法。

签名利用私钥加密,使用公钥解密+某种单向散列逻辑,但在这种情况下,接口只允许使用特定的签名方法(SignData(..)& VerifyData(..) )。