【发布时间】:2020-01-23 00:16:09
【问题描述】:
我有NUnit 测试项目,它正在测试一些远程服务的网关。
我有公钥/私钥来管理我在该服务上的帐户。
现在我将这些键存储在代码中。但对于用户特定和秘密数据来说,这是错误的方式。我必须对版本控制系统和其他人隐藏它。
那么,在哪里存储这样的数据更好?
我的想法:
- 环境变量
- *.csproj.user(如果可能?)
- *.resx
- .runsettings(如果可能?)
我想使用*.csproj.user,但是否可以在此文件中存储和访问自定义数据?
【问题讨论】:
-
如果你想让它难以破解,但不一定安全,另一种选择是使用 System.Security.Cryptography.ProtectedData 加密。使用 CurrentUser 范围对其进行加密。但是,请意识到使用该用户凭据运行的任何程序都可以解密数据。然后,将结果写入到 IsolatedStorage。这会将数据隐藏在临时用户之外,但对您的程序可用。这不是一个安全的解决方案,但除了坚定的黑客之外,其他所有人都很难破解(在这种情况下,这很容易)。