我要求存储信用卡详细信息(不存储不是一种选择)。
使用mcrypt和mcrypt_dev_random生成init_vector需要不同的年龄来加密/解密,但似乎是最“安全”的选项。 mcrypt_dev_urandom更快,但不适合长期存储 - 正如我所读到的那样。
将GnuPG视为一种可能的替代方案,并希望在可能的情况下提出一些意见/提出意见。
答案 0 :(得分:6)
如果确实想要安全地存储信用卡信息,那么就有一个标准:Payment Card Industry Data Security Standard。与使用一种特定的加密算法相比, 很多 更为复杂。 它要求您将卡片详细信息的一部分存储在两台物理上独立的机器上,等等。即使你遵循PCI标准,专家也认为你仍然没有完全安全。除此之外的任何事情都不值得详细讨论,因为整体安全水平很低,几乎没有什么区别。
答案 1 :(得分:4)
请记住:密码学的第一条规则是“不要自己动手”。
MCRYPT_DEV_URANDOM
足以实现强大的加密,但“管理信用卡信息”比加密'更加复杂。所有,让上帝理清他自己的“。
“不存储不是一个选项”对我来说听起来好像你(或更好,那些以上的人)正在做错了。 你应该不正在研究这个,或者是提出解决方案的人。不要成为堕落者。
https://www.pcisecuritystandards.org/merchants/how_to_be_compliant.php
答案 2 :(得分:3)
对您而言,最重要的问题是,PCI合规性需要什么。不要产生一些自制加密。阅读它需要的内容,并且最好将信用卡内容委托给专门的支付处理器。
使用mcrypt和mcrypt_dev_random生成init_vector需要不同的年龄来加密/解密,但似乎是最“安全”的选项。 mcrypt_dev_urandom更快,但不适合长期存储 - 正如我所读到的那样。
这表明存在一些误解。对于一个IV,不需要保密。随机数的质量不太重要。
但即使对于密钥,/dev/urandom
也足够好了,前提是它最初只有足够的熵。