0

我开始使用 cryptostream 类。我可能是错的,如果您加密某些东西,关闭应用程序,然后尝试解密它,它将无法解密,因为将生成不同的密钥。因为我确实需要这个功能,所以我想知道是否可以将密钥保存在应用程序设置中,这是否是正确的方法?

4

2 回答 2

1

许多应用程序将密钥保存在配置文件中。这是一种常见的不良做法。

它不安全,但所有安全选项都难以实施。有使用不同因素的选项,

  1. 您可以使用 PBE(基于密码的加密)从密码中派生密钥。但是您必须输入密码才能启动您的应用程序。这就是所谓的“你知道什么”因素。

  2. 将钥匙放入智能卡中。这是非常安全的,但您需要访问机器上的卡。这就是所谓的“你所拥有的”。

忽略其他涉及使用另一个密钥加密密钥的方案。它并没有真正改变安全强度。

于 2009-08-11T16:41:44.310 回答
1

如果您总是在同一个用户帐户下运行您的应用程序(可以是本地用户或域用户),最好的选择是使用DPAPI。使用 DPAPI 的好处是您不必担心密钥(系统会为您生成)。如果您在不同的用户身份下运行应用程序,那么它会变得更加复杂,因为可用的选项范围从坏到坏(主要问题是:您如何保护您的秘密:密钥、密码、密码等)。根据您想要做什么,您可能根本不需要使用加密(例如,如果您想加密连接字符串,请考虑使用不需要密码的集成 Windows 身份验证)。有关该主题的更多信息,请查看此 MSDN 文章:保护代码中的数据库连接字符串和其他敏感设置;它可能会给你一些想法。

于 2009-08-11T17:08:02.417 回答