RSA加密:第一次生成后是否需要存储密钥对

时间:2018-12-10 22:49:00

标签: c# cryptography rsa rsacryptoserviceprovider

一旦生成了公钥/私钥,它是否必须存储或持久存储在存储中,那么,在进行解密调用时,将使用相同的私钥(与公钥相关)? 基本上,将有两个单独的端点用于RSA加密和解密。

  using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
        {
            var pu = rsa.ToXmlString(false);               
            var pr = rsa.ToXmlString(true);               
        }

1 个答案:

答案 0 :(得分:2)

是的,几乎在所有情况下,您都需要永久存储私钥。您可以使用RSA进行一次密钥建立。但是,对于RSA而言,创建密钥对相对较慢,因此RSA并不常用。

请注意,您还可以创建一个密钥对,其中私钥保留在key container中,例如密钥库。例如,大多数智能卡的设计方式都使得私钥永远不会离开设备。只需使用即可。密钥在创建后自动保留。因此,您将无法检索它们的值并将其转换为XML。

以Microsoft专有的XML格式存储密钥而不进行任何保护(如问题中的代码所执行的那样)不是一个好主意。