用于存储个人详细信息的类,inc.银行账户信息,PHP (Mcrypt) - 可以吗?如何改进?
Posted
技术标签:
【中文标题】用于存储个人详细信息的类,inc.银行账户信息,PHP (Mcrypt) - 可以吗?如何改进?【英文标题】:Class for storing personal details, inc. bank account info, in PHP (Mcrypt) - is this ok? How could it be improved? 【发布时间】:2011-06-19 05:23:46 【问题描述】:我的任务是编写一个加密函数,让我的老板可以轻松地加密各种数据位以进入数据库。这将包括信用卡详细信息银行账户信息。
我以前从未在 php 中使用过加密,所以有点担心。
以下是我在 O'reilly 的 Essential PHP Security 的帮助下目前所做的工作: http://pastebin.com/7L2GxPNJ
IV 实际上似乎没有做任何事情,这让我很担心。这是为什么呢?
如果有人可以查看此代码并进行检查,将不胜感激。我和一位朋友谈过,他认为最好将其编写为 PHP 将连接到的另一台服务器上的守护进程,但是这还不能完成目前 - 我只是在关注订单。
目前,有什么可以改进的吗? IV 是怎么回事?
谢谢。
【问题讨论】:
有点离题,但是如果您打算存储信用卡详细信息(顺便说一句,这很可能是一个非常非常糟糕的主意),您需要符合 PCI 标准。请参阅pcisecuritystandards.org 了解更多信息。 谢谢。它不是一个常规的电子商务应用程序或其他什么,我们正在为一家必须存储详细信息的大公司开发(尽管已经考虑与其他公司、PayPal 等集成)。 PHP 版本是多少?你说的 IV 什么都不做是什么意思? 5.2.当我注释掉第 78 行,或在那里设置一个随机 IV 时,它似乎没有效果。无论如何它只是解密。 在 5.3 之前你需要 srand,但我猜不是 MCRYPT_DEV_URANDOM。还没有想法。 【参考方案1】:IV 实际上似乎没有做任何事情,这让我很担心。这是为什么呢?
初始化向量相当重要——尤其是在加密大量小数据片段时。如果 IV 未修改加密数据,则有些错误。而且,如果您将加密密钥与加密数据存储在同一文件系统上,那么它只是默默无闻的安全性。
【讨论】:
我就是这么想的。一定有什么事。我会看看。至于默默无闻的安全性,完全同意 - 那么我该如何解决呢?守护进程会是最好的方法吗?还是只在单独的网络服务器上运行 PHP 脚本就可以了?以上是关于用于存储个人详细信息的类,inc.银行账户信息,PHP (Mcrypt) - 可以吗?如何改进?的主要内容,如果未能解决你的问题,请参考以下文章