我正在考虑新的Sybase项目的加密选项。我认为Sybase加密是一种错误的策略,因为a)dba可以进入,b)如果当我们迁移到SQL Server或Oracle时,我不想处理不同的加密策略。什么是隐藏长命密钥的最佳地点
因此,我想在我的Java代码中加密敏感数据(对称加密),然后将其存储在数据库中。
现在,除非在一个非常受控制的环境中,加密的字段最好不要更改它们的加密密钥,对我而言,这对我而言意味着永远不会。所以这将是一个永久密码。
问题是,我应该在哪里保存该密码,以便可以从程序访问该密码但其他人无法访问该密码。如果它在一个属性文件中,任何有权访问我们的Git仓库的开发人员都可以看到它。
我们可以在源代码中对其进行硬编码,但是良好的规范性,这是一种不好的做法。
我们可以在源代码中生成它,如第10个Fibonacci或3!+8!这将很难找到,但它仍然相当暴露。
我们可以让sa在环境中保持它,但是他们在哪里提交它以供将来参考?
这么多糟糕的选择。有没有好的?
[把它放在一个属性文件中,但在'.gitignore'中列出这个文件](https:// git-scm。com/docs/gitignore) –
我投票结束这个问题作为题外话,因为它不是一个直接的编程问题。这更多的是一个安全设计问题,我相信它在[信息安全](// security.stackexchange.com)Stack Exchange站点上更合适。 –
@TobySpeight它确实是一个编程问题。我会对其进行重新说明,但我的主要问题是“你在哪里安全地存储这些密码,以便程序可以访问它们,但是没有人可以” –