C# 如何使用提供的RSA公钥加密App.config文件的一部分
我将某人的公钥作为字符串:C# 如何使用提供的RSA公钥加密App.config文件的一部分,c#,.net,rsa,app-config,C#,.net,Rsa,App Config,我将某人的公钥作为字符串: <RSAKeyValue> <Modulus>publickeyhere</Modulus> <Exponent>AAAA</Exponent> </RSAKeyValue> 公共钥匙 AAAA 我还有一个app.config文件,我正在尝试使用公钥加密其中的appSettings部分。我是这样做的 var publicKeyXml = @"<RSAKeyValue>&l
<RSAKeyValue>
<Modulus>publickeyhere</Modulus>
<Exponent>AAAA</Exponent>
</RSAKeyValue>
公共钥匙
AAAA
我还有一个app.config文件,我正在尝试使用公钥加密其中的appSettings部分。我是这样做的
var publicKeyXml = @"<RSAKeyValue><Modulus>publickeyhere</Modulus><Exponent>AAAA</Exponent></RSAKeyValue>";
var map = new ExeConfigurationFileMap
{
ExeConfigFilename = "app.config"
};
var config = ConfigurationManager
.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
using (var rsa = new RSACryptoServiceProvider())
{
try
{
rsa.FromXmlString(publicKeyXml);
// Now use the public key to encrypt how?
config.AppSettings.SectionInformation
.ProtectSection("RSAProtectedConfigurationProvider");
config.SaveAs($"app.encrypted.config");
}
finally
{
rsa.PersistKeyInCsp = false;
}
}
var publicKeyXml=@“publickeyeraaaa”;
var map=新的ExeConfigurationFileMap
{
ExeConfigFilename=“app.config”
};
var config=ConfigurationManager
.openMappedExconfiguration(映射、配置用户级别.None);
使用(var rsa=new RSACryptoServiceProvider())
{
尝试
{
rsa.FromXmlString(publicKeyXml);
//现在如何使用公钥加密?
config.AppSettings.SectionInformation
.ProtectSection(“RSAProtectedConfigurationProvider”);
config.SaveAs($“app.encrypted.config”);
}
最后
{
rsa.PersistKeyInCsp=false;
}
}
我如何告诉它,要进行加密,它应该使用公钥,而不是运行它的当前计算机上的公钥?为什么要加密公钥?从定义上讲,它不是每个人都可以访问吗?对不起,我不太清楚。在RSA(我不是专家)中,我相信您使用公钥加密数据,然后密钥所有者使用其私钥解密数据。这就是我想做的,我想用它来加密数据,然后交给他们。好吧,你说得对。你也可以看看这里:@Nick是的,谢谢,我读了那页,但我不想自己重写所有的加密内容。NET Framework已经可以使用
config.AppSettings.SectionInformation.ProtectSection(“rsaptectedconfigurationprovider”)加密app.config文件但是我不知道如何指定我想要它使用的公钥。如果远程执行加密以将应用部署到服务器,我需要使用服务器的公钥,而不是我的计算机的公钥。为什么要加密公钥?从定义上讲,它不是每个人都可以访问吗?对不起,我不太清楚。在RSA(我不是专家)中,我相信您使用公钥加密数据,然后密钥所有者使用其私钥解密数据。这就是我想做的,我想用它来加密数据,然后交给他们。好吧,你说得对。你也可以看看这里:@Nick是的,谢谢,我读了那页,但我不想自己重写所有的加密内容。NET Framework已经可以使用config.AppSettings.SectionInformation.ProtectSection(“rsaptectedconfigurationprovider”)加密app.config文件但是我不知道如何指定我想要它使用的公钥。如果远程进行加密以将应用部署到服务器,我需要使用服务器的公钥,而不是我的机器的公钥。