保护单个数据库字段

时间:2011-01-10 13:44:07

标签: java database encryption encryption-symmetric

我的应用程序需要将银行详细信息和信用卡号存储在数据库中。我们支持多种数据库变体,并尽可能避免任何可能无法轻松移植到另一个数据库的数据库特定功能。

因此,我正在寻找一种简单但相当安全的加密某些字段的方法,例如卡号和银行帐号。应用程序需要那些才能向外部支付系统提交请求,但是相关数据库表的随意选择应该返回“垃圾”,这样有人就不能使用数千个信用卡号码。

只有我们的应用程序需要知道加密系统,这些信息不需要以(加密)形式传输到任何其他系统。

有没有人对简单而安全的方法有任何建议?

我发现以下question/answer看起来很有用而且很全面,但我很难弄清楚我是否需​​要所有这些字段。

我还发现this article似乎意味着每次插入/更新记录并将其与加密值一起存储时,应随机生成IV。如果安全,这似乎比SO问题中提出的方法更直接,但我无法协调如何与Java API协调。

任何建议表示赞赏。 (我正在使用Java 6)

2 个答案:

答案 0 :(得分:1)

可以引用

PCI Security Standards。关于卡行业敏感卡数据的规定很多。

答案 1 :(得分:1)

Java带来了一些加密/解密库,您可以从http://download.oracle.com/javase/6/docs/technotes/guides/security/index.html开始研究它们,特别是查看JCE(现在是JCA的扩展)信息。

此SO问题也非常相似,包含许多有用的建议:https://stackoverflow.com/questions/4319496/how-to-encrypt-and-decrypt-data-in-java