在.NET中存储加密/解密密钥

时间:2011-06-14 07:49:30

标签: .net cryptography

在.NET中执行此操作的最佳做​​法是什么? 我的问题是,我想与我创建的网络服务进行交互。为了确保没有“创意”用户,可以滥用服务,我想加密参数(输出是敏感的)。

我认为我很聪明,通过使用网络服务,而不是让我的应用程序直接进入我们的数据库,但我显然不够聪明,知道如何处理密钥。

那么,如何在我本地安装的应用程序中存储密钥,我使用加密参数? 当然,我希望阻止“有创意”的用户能够检索它。

我想我可以从网络服务中提供密钥,但我真的没有看到任何好处。人们仍然可以只调用服务,并获得密钥。

TL; DR 一般来说,当每个人都可以反编译代码并获取密钥(如果它存储在代码中)时,如何处理.NET中的加密/解密密钥?

1 个答案:

答案 0 :(得分:0)

一种简单的方法是将密钥存储在配置中,然后加密配置文件(web.configapp.config) - 详细信息为here

另一种方法是使用证书保护到Web服务的链接,并将证书作为资源嵌入到应用程序中。然后,这将阻止非常创意用户使用例如Wireshark读取进出服务的流量。有关详细信息,请here