我已经阅读了在 MySQL 数据库中保存信用卡信息?和存储信用卡信息。
我知道存储信用卡信息需要 PCI 合规性,这不是一件容易的事。
这不是这个问题的目的。我的问题如下:
加密用户信用卡的安全方法是什么?想到的最简单和最简单的方法是使用私钥并用它加密 CC。这似乎不太安全,因为密钥必须存储在服务器上,如果攻击者可以获取我的数据库,他们可能也可以获得密钥。
我希望能够做的是使用该用户密码加密每个 CC 作为加密过程的一部分。如果有人获得数据库,他们将无法解密任何内容,因为密码存储为加盐哈希。这对于交易购买非常有用——用户点击“购买”,输入他们的密码作为确认,我解密他们的 CC 并进行收费。他们的密码仅在请求期间在内存中,并且永远不会写入磁盘。
不幸的是,这不适用于我正在尝试构建的内容 - 一项收取经常性费用(例如,每月一次)的服务,无论用户是否在我需要收费时登录。
鉴于这种情况,是否有一种安全的方式来存储用户 CC?