RSA Crypto:第一次生成后是否需要存储密钥对
RSA Crypto: Is it require to store keypair after geneating first time
一旦 public/private 密钥生成,那么它是否必须存储或持久存储所以,当解密调用时使用相同的私钥(与 public 密钥相关)?
基本上,RSA 加密和解密将有两个单独的端点。
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
var pu = rsa.ToXmlString(false);
var pr = rsa.ToXmlString(true);
}
是的,几乎在所有情况下您都需要永久存储私钥。您可以使用 RSA 进行一次性密钥建立。但是RSA生成密钥对比较慢,所以RSA不常用。
请注意,您还可以创建一个密钥对,其中私钥保留在 key container 中,例如密钥库。例如,大多数智能卡的设计方式使得私钥永远不会离开设备;它只是在需要时 使用 。密钥在创建后自动保留。因此您将无法检索它们的值并将它们转换为 XML。
在没有任何保护的情况下以 Microsoft 专有 XML 格式存储密钥(如在问题中的代码中执行的那样)不是一个好主意。
一旦 public/private 密钥生成,那么它是否必须存储或持久存储所以,当解密调用时使用相同的私钥(与 public 密钥相关)? 基本上,RSA 加密和解密将有两个单独的端点。
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
var pu = rsa.ToXmlString(false);
var pr = rsa.ToXmlString(true);
}
是的,几乎在所有情况下您都需要永久存储私钥。您可以使用 RSA 进行一次性密钥建立。但是RSA生成密钥对比较慢,所以RSA不常用。
请注意,您还可以创建一个密钥对,其中私钥保留在 key container 中,例如密钥库。例如,大多数智能卡的设计方式使得私钥永远不会离开设备;它只是在需要时 使用 。密钥在创建后自动保留。因此您将无法检索它们的值并将它们转换为 XML。
在没有任何保护的情况下以 Microsoft 专有 XML 格式存储密钥(如在问题中的代码中执行的那样)不是一个好主意。