Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# 我应该在哪里保存用于xml签名验证的公钥?_C#_Xml_Rsa_Signing - Fatal编程技术网

C# 我应该在哪里保存用于xml签名验证的公钥?

C# 我应该在哪里保存用于xml签名验证的公钥?,c#,xml,rsa,signing,C#,Xml,Rsa,Signing,我想提供一个简单、未加密的xml文件作为桌面应用程序(winforms、.NET 4.0、C#)的配置文件。但是,我想确保应用程序使用的任何配置文件都是我提供的。对于这一点,我正在考虑,这似乎非常适合我的要求 我唯一剩下的问题是:我应该如何在我的应用程序中存储公钥以执行配置文件的验证?我猜将其嵌入到应用程序中是可能的,但到底应该如何做才能防止有人简单地用反编译器打开二进制文件并用他/她自己的密钥替换我的密钥 我不想寻找任何超级安全的东西,因为我知道我无论如何都不能100%确定。正如我在评论中所说

我想提供一个简单、未加密的xml文件作为桌面应用程序(winforms、.NET 4.0、C#)的配置文件。但是,我想确保应用程序使用的任何配置文件都是我提供的。对于这一点,我正在考虑,这似乎非常适合我的要求

我唯一剩下的问题是:我应该如何在我的应用程序中存储公钥以执行配置文件的验证?我猜将其嵌入到应用程序中是可能的,但到底应该如何做才能防止有人简单地用反编译器打开二进制文件并用他/她自己的密钥替换我的密钥


我不想寻找任何超级安全的东西,因为我知道我无论如何都不能100%确定。

正如我在评论中所说,没有100%的傻瓜式方法可以保护您的应用程序不被反编译,但是您可以使用工具(如

我会使用windows cert stores来存储任何密钥) 和windows数据保护API,以便在程序执行时将其存储在内存中。

如果要在代码中嵌入密钥,没有100%的傻瓜式方法可以保护您的应用程序不被反编译和修改,如果有人想这样做,他们将能够做到。但是你可以混淆你的代码,这不会阻止人们对你的代码进行反编译,这只会让它变得更难。就像你自己说的,你不想寻找任何超级安全的东西:)可能的重复如果有人会费心去反编译/重新编译你的程序集,他们只会完全删除检查。。。否则-这是公钥,没有理由隐藏它-如果你想验证程序的非篡改版本的配置,只需将其包含在你的应用程序中即可。谢谢链接,Alexei。它有很多有用的信息。