简单的rsa加密/解密.net



我想生成一对密钥,只需输入如下内容:

Rsa.Decrypt(data, privateKey); 
Rsa.Encrypt(data, publicKey);

有什么简单的方法吗?我知道有类似RsaCryptoServiceProvider的东西,但它需要XML来创建适当的对象。我想存储私钥/公钥作为简单的字符串(不是xml),我将放在web。配置:

<appSettings>
    <add key="MyPublicKey" value"...."/>
    <add key="MyrivateKey" value"...."/>
</appSettings>

稍后我将加密web。所以一切都将是安全的(IIS将处理它)。有可能那样做吗?

使用您的首选密钥大小(512/1024/2048…)创建RSACryptoServiceProvider对象:

int keySize = 1024;
m_ServiceProvider = new RSACryptoServiceProvider(keySize);

或者使用默认大小:

m_ServiceProvider = new RSACryptoServiceProvider();

然后使用ExportParameters获取您需要的字节数组,例如获取公钥的模数部分:

byte[] publicModulus = m_ServiceProvider.ExportParameters(true).Modulus;

我在ExportParameters中传递了一个真值,因为您想要访问私钥参数。

,然后你只需要将字节数组转换为字符串:

string publicModulusStr = Convert.ToBase64String(modulus);

稍后,当你想从网上阅读。配置并重新创建RSACryptoServiceProvider对象,用您存储在文件中的文本创建一个RSACryptoServiceProvider对象,然后将RSACryptoServiceProvider构造函数传递RSACryptoServiceProvider。

还有一个提示:网络。您保存的配置文件应该保持非常私密,因为您将私钥存储在其中。