我有一段时间想知道一些软件如何隐藏秘密密钥,以至于无法轻易发现它们.举几个例子:
显然,这些程序不仅仅是在字节[]中使用密钥,因为这样可以轻松窃取密钥并生成自己的序列号等.
使用了哪些策略来隐藏这些键,以便无法轻易找到它们?
为了防止有人轻易抓取我的数据,我将来自我服务的数据缓存为加密文件(基本上是复制保护).
但是,为了做到这一点,我必须将加密密钥存储在.NET程序集中,以便能够加密和解密这些文件.
知道像Red Gate的.NET Reflector这样的工具可以直接拉出我的钥匙,我觉得这不是一种非常安全的方式......有没有最好的做法呢?
我有以下问题:在我的ASP.NET MVC应用程序中,我想在我的数据库中存储一些键/值设置.其中一些键/值设置包含密码,我想加密密码以保护它们.
我无法对密码进行哈希处理,因为我需要一些密码才能在远程SMTP服务器上进行验证.
在MSDN上,我发现了一篇关于使用"受保护的配置提供程序"保护配置设置的文章,但我不想将该设置存储在我的web.config文件中.
我考虑使用DpapiProtectedConfigurationProvider,它使用一些机器和用户特定属性作为加密密钥,但是此提供程序仅用于XML配置节点.
另一篇 MSDN 文章是关于ProtectedData类的,但这种方法真的安全吗?
那么,在C#应用程序中存储密码的最佳方法是什么?
我还阅读了以下其他问题,但我找不到解决方案: 问题1,问题2,问题3
问候