我的应用程序需要在数据库中存储银行详细信息和信用卡号。我们支持多种数据库变体,我们尽量避免任何可能无法轻松移植到另一个数据库的特定功能。
因此,我正在寻找一种简单但相当安全的方法来加密某些字段,例如卡号和银行帐号。应用程序需要这些才能向外部支付系统提交请求,但相关数据库表的随意选择 * 应该返回“垃圾”,因此有人不能用几千个信用卡号逃跑。
只有我们的应用程序需要知道加密系统,这些信息不需要以(这种)加密形式传输到任何其他系统。
有没有人对一种简单而安全的方法有任何建议?
我发现以下问题/答案看起来有用且全面,但我很难弄清楚我是否需要所有这些领域。
我还发现这篇文章似乎暗示每次插入/更新记录并与加密值一起存储时,应该随机生成 IV。如果安全,这似乎更直接,那么 SO 问题中建议的方法,但我无法协调如何与 Java API 协调。
任何建议表示赞赏。(我正在使用 Java 6)