Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用提供的RSA公钥加密App.config文件的一部分_C#_.net_Rsa_App Config - Fatal编程技术网

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文件config.AppSettings.SectionInformation.ProtectSection(“rsaptectedconfigurationprovider”)加密app.config文件