1

存储敏感数据(例如:信用卡)的最佳方式是什么?我需要能够得到原始文本,所以我不能散列它。我有几个想法。

  1. 使用 MySQLAES_ENCRYPT()AES_DECRYPT()

  2. 使用加密将其存储在文件中fwrite()

现在我知道 MySQL 的加密和解密功能并不安全,我可以在 PHP 中使用任何简单、快速和安全的加密吗?

4

2 回答 2

7

不要在您的服务器上存储信用卡号码!在您的数据库中拥有这些信息会使您成为黑客极具吸引力的目标。如果你认为你可以保护它,再想一想。黑客已经击败了具有出色安全性的公司的安全性。你的安全不会更好。

您最好的选择是使用Authorize.Net 的客户信息管理器 (CIM) 之类的服务,该服务允许您在他们的服务器上创建付款配置文件(即他们存储信息),然后您就可以收取费用。这样,您可以在需要时向客户收费,而不必存储他们的信用卡信息。

如果您坚持自己做,您必须遵守本指南中列出的 PCI 规则。但是您可能会发现本指南更易于理解。前往第 14 页了解您需要了解的内容。基本上您可以存储它,但必须根据 PCI 标准对其进行加密。

仅供参考,您的服务器和网络也必须是安全的。如果任何一块拼图不符合 PCI 标准,您就无法存储信用卡号。这排除了大多数共享托管公司作为解决方案。

于 2012-05-01T01:59:53.980 回答
3

通常,您存储卡号的唯一原因是订阅/定期付款。您会发现优秀的支付服务提供商会提供一个令牌来存储而不是卡详细信息,然后您只需将其再次推送给他们。

查看 PHP mcrypt 库,但如果您确实需要加密/解密卡号并记住,永远不要在任何地方存储 3 位安全代码。曾经。

于 2012-05-01T02:02:09.547 回答