我正在将Microsoft的App Center与.NET Core 3 WPF应用程序配合使用。我不想将我的应用程序中心密钥直接存储在源代码中,因为我的软件是开源的。我正在使用Visual Studio,并且在Google上搜寻了一些方法,以免将API密钥直接存储在源代码中。我知道您不应该将它们存储在此处,但是在构建时,我需要使API密钥作为代码的字符串可访问,以便将其传递给方法调用。
我并不非常担心有人通过反汇编程序运行我的应用程序,但是我想挫败那些可能想比自己更多地闲逛的随便的人。在Visual Studio / c#中,我似乎找不到任何方法来做这样的事情。类似于#ReadFromFile(filepath)指令或可以读取文件内容并将其替换为编译时文件的内容。
有人知道做这种事情的方法吗?我已经看到了许多有关“如何永远不要做”的答案,但我实际上没有足够的资源去做很多事情。我只有一个相当简单的应用程序,该应用程序是开源的,并且使用API密钥。
我认为有3种可能的解决方案:
将密钥放在应用程序在启动时将读取的文件中,并将该文件从版本控制中排除。
a)将密钥放入环境变量中。这是您对云应用程序执行的方式。(但是因为桌面应用需要使用它,所以PC上的每个程序都可以读取它们)
b)如果您仅在Windows上工作,请将其放入Windows注册表中。(其他程序也可以这样做)
使用键作为参数调用您的程序。您可以创建批处理/ powershell(在Windows上)或bash(在linux上)脚本,也可以创建桌面快捷方式,这样就不必始终在终端上启动应用程序。
(此外,您还可以加密密钥,并在启动时要求用户输入密码。因此,即使其他应用程序可以读取您的密钥,它们也只有加密的数据。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句