我的任务是在 Oracle 数据库中创建加密/解密方法。通过研究,我提出了这个SO 讨论,它提供了一个使用 DBMS_CRYPTO 包的很好的代码示例。
但是有一个安全问题:在这个设计中,KEY/IV 对、加密算法和加密数据都存储在一个地方(数据库)。使收集所有必要的部分变得太容易以获得真正的价值。
出于某种原因,管理层拒绝了将密钥存储在 Oracle 数据库之外的选项。原因是有时我们需要向客户端提供数据转储。他们不能有加密的数据,也不能解密它。数据转储由 SQL 完成,因此可以在 SELECT 查询中执行解密。
这种情况有最佳实践吗?
感谢您的时间。