Sim*_*mon 8 .net c# encryption rsa
我想生成一对键,只需键入以下内容:
Rsa.Decrypt(data, privateKey);
Rsa.Encrypt(data, publicKey);
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来做到这一点?我知道有类似RsaCryptoServiceProvider但它需要XML来创建适当的对象.我想将私钥/公钥存储为简单的字符串(而不是xml),我将把它放在web.config中:
<appSettings>
<add key="MyPublicKey" value"...."/>
<add key="MyrivateKey" value"...."/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
后来我会加密web.config所以一切都会安全(IIS会处理它).是否有可能以这种方式做到这一点?
gal*_*arm 10
使用首选密钥大小(512/1024/2048 ...)创建RSACryptoServiceProvider对象:
int keySize = 1024;
m_ServiceProvider = new RSACryptoServiceProvider(keySize);
Run Code Online (Sandbox Code Playgroud)
或者使用默认大小:
m_ServiceProvider = new RSACryptoServiceProvider();
Run Code Online (Sandbox Code Playgroud)
然后使用ExportParameters获取字节数组所需的内容,例如获取公钥使用的Modulus部分:
byte[] publicModulus = m_ServiceProvider.ExportParameters(true).Modulus;
Run Code Online (Sandbox Code Playgroud)
我在ExportParameters中传递了一个真值,因为您希望访问私钥参数.
然后你只需要将字节数组转换为字符串:
string publicModulusStr = Convert.ToBase64String(modulus);
Run Code Online (Sandbox Code Playgroud)
稍后,当您想要从web.config读取并重新创建RSACryptoServiceProvider对象时,使用存储在文件中的文本创建一个RSAParameters对象,然后将RSAParameters传递给RSACryptoServiceProvider构造函数.
还有一个注意事项:您保存的web.config文件应保持非常私密,因为您将私钥存储在其中.