【发布时间】:2016-05-23 22:15:26
【问题描述】:
我正在考虑新 Sybase 项目的加密选项。我认为 Sybase 加密是错误的策略,因为 a) dba 可以进入,b) 如果我们迁移到 SQL Server 或 Oracle,我不想处理不同的加密策略。
因此,我正在考虑在我的 Java 代码中加密敏感数据(对称加密),然后再将其存储到数据库中。
现在,加密字段最好永远不要更改其加密密钥,除非在非常受控的环境中,这对我来说实际上意味着永远不会。所以这将是一个永久密码。
问题是,我应该将这个密码保存在哪里,以便程序可以访问但其他人无法访问。如果它在属性文件中,任何有权访问我们的 Git 存储库的开发人员都可以看到它。
我们可以在源代码中对其进行硬编码,但是好的法律,这是一种不好的做法。
我们可以在源代码中生成它,例如 10th Fibonacci 或 3!+8!这将很难找到,但它仍然相当暴露。
我们可以让 sa 在环境中维护它,但是他们在哪里归档以供将来参考?
这么多糟糕的选择。有没有好的?
【问题讨论】:
-
我投票结束这个问题,因为它不是直接的编程问题。这更像是一个安全设计问题,我相信在Information Security Stack Exchange 网站上会更合适。
-
@TobySpeight 这确实是一个编程问题。我会改写它,但我的主要问题是“您将这些密码安全地存储在哪里,以便程序可以访问它们但没有人可以访问它们”
-
你不讨厌人们不发表评论就投票给你
标签: security encryption