在 .NET 中执行此操作的最佳实践是什么? 我的问题是,我想与我创建的网络服务进行交互。为了确保没有“创意”用户可以滥用该服务,我想加密参数(输出是敏感的)。
我认为我很聪明,通过使用网络服务,而不是让我的应用程序直接进入我们的数据库,但我显然不够聪明,不知道如何处理 key 。
那么,我如何在我本地安装的应用程序中存储 key ,我用它来加密参数? 当然,我想阻止“创意”用户检索它。
我想我可以通过网络服务提供 key ,但我真的看不出这样做有什么好处。人们仍然可以调用该服务并获取 key 。
长话短说 一般来说,当每个人都可以反编译代码并获取 key (如果它存储在代码中)时,我如何处理 .NET 中的加密/解密 key ?
最佳答案
一种简单的方法是将 key 存储在配置中,然后加密配置文件(web.config
或app.config
)- 详情为here .
另一种方法是使用证书保护到 Web 服务的链接,并将证书作为资源嵌入到应用程序中。这将阻止非常有创意的用户使用例如Wireshark 读取进出服务的流量。详细信息是 here .
https://stackoverflow.com/questions/6340585/