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

问题描述

| 在.NET中执行此操作的最佳做​​法是什么? 我的问题是,我想与创建的Web服务进行交互。为了确保没有任何“创意”用户可以滥用该服务,我想对参数进行加密(输出是敏感的)。 我以为我很聪明,通过使用Web服务,而不是让我的应用程序直接进入我们的数据库,但是我显然不够聪明,不知道如何处理密钥。 因此,如何在本地安装的应用程序中存储用于加密参数的密钥? 当然,我想防止\“ creative \”用户能够检索它。 我想我可以从Web服务中获取密钥,但是我真的没有看到任何好处。人们仍然可以仅调用服务并获取密钥。 TL; DR 一般来说,当每个人都可以反编译代码获取密钥(如果它存储在代码中)时,如何处理.NET中的加密/解密密钥?     

解决方法

        一种简单的方法是将密钥存储在配置中,然后对配置文件(
web.config
或ѭ1either)进行加密-详细信息在这里。 另一种方法是使用证书来保护与Web服务的链接,并将证书作为资源嵌入到应用程序中。然后,这将阻止非常有创造力的用户使用例如Wireshark读取往返于该服务的流量。细节在这里。