【发布时间】:2020-10-09 09:19:08
【问题描述】:
我整个上午都在看这个,我已经到了看不到树木的地步,所以向社区寻求建议和清晰的想法。
我正在编写一个应用程序,它将从第三方提供的受密码保护的 Zip 文件中读取数据。这种格式不会改变(因此不能接受这样做的建议),密码也不会改变。
由于这个 Zip 上的密码总是相同的,我的问题是在哪里以及如何存储这个安全的密码?出于明显的原因,我不想将其作为字符串存储在代码中。因为我需要实际密码,所以存储它的哈希不是路由(我不认为)。
我可能想多了,有一个简单的选择,但就像我说的我在树林里丢了我的头发:)
编辑: 为这个问题的限制提供更多背景信息:
-
我必须读取的数据是加密的 zip 格式 文件。密码是静态的(例如,所有密码都保持不变) 文件)
-
许多文件可能会在一天内不定期地通过
-
应用程序的用户不知道也不允许知道 zip 文件的密码(不能输入)
-
应用程序必须作为 Windows 服务运行并处理这些
文件在提供时自动提供,无需任何用户
干预。 -
这些文件以及它们的交付和格式化方式是 3rd 派对,我无法控制更改这些参数
这些是我为该项目提供的限制条件,我需要为其提供解决方案。我已经知道在代码中存储为字符串是错误的。重复这一点,因为您的回复不是答案!
感谢社区的帮助:)
【问题讨论】:
-
这里缺少的重要部分是您试图保护密码来自的是谁或什么。换句话说,谁或什么可以访问这台计算机但不应该访问密码?例如,应用程序的用户是否有权访问密码?如果他们有,我建议他们只需输入一次,然后您使用 DPAPI 之类的东西将其安全地存储在他们的计算机上。
-
感谢您的意见。要回答您关于“来自”的问题,那么该应用程序不适用于更广阔的世界(例如,不是任何人都可以下载和使用的东西)。它仅供我们用户群的有限选择使用。如果我只是随便将密码存储在代码中,大多数用户甚至不会知道、关心或怀疑。但是有 1 或 2 位用户对软件开发“感兴趣”,并乐于使用基本知识指出他们已经阅读了密码。