c# - 在 .net 框架中使用先前生成的 RSA 公钥/私钥

标签 c# .net security encryption rsa

我有一个预先存在的用于 RSA 加密的公钥/私钥对,我需要在 .net 中使用它。 我可以在网上找到的所有示例都演示了如何生成新的私有(private)/公共(public)对,然后进行加密/解密。 IE。像这样:

const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "SpiderContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
rsa = new RSACryptoServiceProvider(cspParams);
.....
rsa.encrypt(...)
rsa.decrypt(...)

可以看出,没有指定预先存在的公钥/私钥的途径。

有人知道如何完成我想做的事情吗? 任何帮助将不胜感激。

干杯 那仁

最佳答案

要使用现有 key ,您可以使用 ImportParameters -方法:

RSAParameters parameters = new RSAParameters()
parameters.Modulus = // ...
parameters.Exponent = // ...
RSA rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(parameters);
rsa.Encrypt(/*...*/);

您也可以添加私有(private)参数,以便将其用于解密或签名。

为了告诉您如何从现有的键数据获取参数,我们需要确切地知道它们是如何编码的。尝试向我们展示字符串(如果是真实 key ,请将大部分私钥替换为 Xs)。

关于c# - 在 .net 框架中使用先前生成的 RSA 公钥/私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528928/

相关文章:

.net - .NET 中的可空类型缺少方法

.net - 居中内容占位符

c# - 编译时/构建后依赖注入(inject) IoC?

c# - 搜索多个属性和元素的 XPath 是什么?

c# - 使用 OAuth2 在 Office 365 中进行 IMAP 身份验证

c# - 重现 "A connection that was expected to be kept alive was closed by the server."

c# - 如何删除字符串上的重音符号?

security - 在不强制重定向到 HTTPS 的情况下启用 HSTS?

php - 限制对我服务器上的 php 脚本的访问

c# - 使用 xaml.cs 文件添加图例和工具提示