我很好奇是否有任何关于在源代码中存储一些敏感信息的建议。为了让自己从头开始清楚,我不谈论用户密码,信用卡号等等;我说的是API访问密钥,客户端机密和其他与应用程序用户没有直接关系的数据,而是应用程序向各种组件或第三方服务验证自身(也可以考虑数据库连接字符串) web.config文件)。
我正在寻找的是一种方法,如果可能的话,隐藏这些敏感信息(通常是字符串)的明文出现,最好是在源文件(避免以某种方式硬编码)和输出二进制文件中。对于二进制文件我知道有混淆的“解决方案”;然而,对于消息来源,我想不出一个简单的问题。理想情况下,解决方案应该尽可能地源代码控制,允许授权开发人员简单地签出代码并构建它而无需额外的步骤。
如果您对此有任何建议,我非常愿意听到它们。
答案 0 :(得分:1)
您可以加密密钥和密钥。以xml存储。
应用程序可以解密它&用它。
参见:
Encrypt/Decrypt string in .NET
此外,您可以使用Encoding,这至少比使用纯文本更好。
参见:
答案 1 :(得分:0)
我最终选择的解决方案是将所有敏感字符串移到 web.config 文件(或 app.config )中,然后对其敏感部分进行加密。然后我让操作系统和ASP.NET运行时来处理加密/解密。不完美(毕竟你需要有原始app / web.config文件保存明文数据 - 但至少它不必在生产机器上),但非常方便。