Php 使用mcrypt或GnuPG存储信用卡详细信息

Php 使用mcrypt或GnuPG存储信用卡详细信息,php,encryption,mcrypt,Php,Encryption,Mcrypt,我有一个存储信用卡详细信息的要求(不存储不是一个选项) 使用mcrypt和mcrypt_dev_random生成init_向量需要不同的加密/解密时间,但似乎是最“安全”的选择。mcrypt_开发速度更快,但不适合长期存储—正如我所读到的 将GnuPG视为一种可能的替代方案,并希望在可能的情况下获得一些意见/建议。对于您来说,最重要的问题是,您需要什么来满足PCI合规性。不要产生一些自制的加密。仔细阅读它的要求,最好将信用卡的内容委托给专门的支付处理机构 使用mcrypt和mcrypt_dev_

我有一个存储信用卡详细信息的要求(不存储不是一个选项)

使用mcrypt和mcrypt_dev_random生成init_向量需要不同的加密/解密时间,但似乎是最“安全”的选择。mcrypt_开发速度更快,但不适合长期存储—正如我所读到的


将GnuPG视为一种可能的替代方案,并希望在可能的情况下获得一些意见/建议。

对于您来说,最重要的问题是,您需要什么来满足PCI合规性。不要产生一些自制的加密。仔细阅读它的要求,最好将信用卡的内容委托给专门的支付处理机构

使用mcrypt和mcrypt_dev_random生成init_向量需要不同的加密/解密时间,但似乎是最“安全”的选择。mcrypt_开发速度更快,但不适合长期存储—正如我所读到的

这表明了一些误解。首先,静脉注射不需要保密。随机数的质量不那么重要


但即使对于密钥,
/dev/uradom
也足够好,只要它最初有足够的熵作为种子。

如果你真的想安全地存储信用卡信息,它有一个标准:。而且它比使用一种特定的加密算法要复杂得多。它要求您在两台物理上独立的机器上存储部分卡详细信息,以及许多其他内容。即使你严格遵守PCI标准,专家认为你仍然没有完全安全。任何低于此值的内容都不值得详细讨论,因为总体安全级别很低,几乎没有什么区别。

记住:密码学的第一条规则是“不要自己做”

MCRYPT_DEV_uradom
对于健壮的加密来说已经足够了,但是“管理信用卡信息”比简单地“加密所有信息,让上帝自己处理”要复杂得多

“不存储不是一个选项”听起来好像你(或者更好,你上面的人)做得不对你不应该对此进行研究,也不应该是提出解决方案的人。不要做替罪羊


安全地存储信用卡是一项非常重要的任务,如果你在Stack Overflow上询问如何进行,你几乎没有希望正确或合法地进行操作。@meagar我对所有事情都很满意,但在这个过程中引入更多工作的选项与速度相比都有问题。哇。你在做什么产品?我想像躲避瘟疫一样躲避它。“只要不耽误时间”是你在处理信用卡号码存储问题时最糟糕的态度。如果你做错了,你是否理解对你个人而不是你的客户的巨大法律后果?你明白这不是你以后可以插入并充实细节的东西吗?你绝对不想自己做这件事。你会弄错,结果对所有相关人员都是灾难性的。你需要做的是放弃自己实现这一点的任何希望,并联系了解他们正在做什么的专业人士。即使这样,他们也会审核你的系统,以确保它足够安全,可以与他们的系统交互。这不是一个玩笑,这实际上和互联网上的安全问题一样严重。@meagar我确实意识到了后果,我当然不记得说过我想牺牲任何东西来换取速度——整个前提是评估解决方案——而不在我们的系统上这样做是一种选择。进一步说,我确实提到,我们将使用多个提供程序-因此,问题是-如果我们只使用一个提供程序而不切换,那么这将不是一个问题。好的-后退一步或三步-将使用一些“不太”安全的东西,如解锁随机数生成器和基于某些度量的少数算法之一,然后拆分跨物理系统生成的加密数据将是有利的。。。基本上,有没有一种情况是为了速度而使用随机性较小的矢量创建方法是可以接受的?伊恩速度应该是你最不关心的。加密/解密永远不会超过几分之一秒,也许是一秒。目标是让它安全,对吗?好吧,即使你确定了加密过程,你需要做的是使它真正安全的是锁定系统上运行。如果没有人可以进入您的系统,即使是未加密的存储也足够安全。但弱点是有人获得解密数字所需的所有信息;那么加密它的具体方式就无关紧要了。PCI涵盖了所有这些…@deceze实际上,为初始化向量生成随机性的方法可能需要相当长的时间-使用mcrypt_dev_random on*nix等待熵池填充-测试表明加密需要200秒以上!对此的最后想法(希望如此)…-我已经加密了数据。将IV与密文一起存储,对base64编码密码进行切分,并在多台物理机器上存储;分片可以处理丢失的1个节点,并且仍然可以重建。我已经请了一些专家咨询——当这种情况发生时,谁知道呢,但希望这能进一步达到合规性。@deceze“将部分卡详细信息存储在两台物理上不同的机器上”谢天谢地,我没有打电话,因此也没有拿包裹!但我确实听到了。该要求基本上是由于使用了不同的支付提供商,因此我们需要能够切换,而无需用户重新输入详细信息。我并不是说这是一个合理的理由——这正是我所说的……在这种情况下,我将部分收回“不要自己做”并建议使用该用户的密钥加密每个用户的CC数据(如果他曾经