【问题标题】:Class for storing personal details, inc. bank account info, in PHP (Mcrypt) - is this ok? How could it be improved?用于存储个人详细信息的类,inc.银行账户信息,PHP (Mcrypt) - 可以吗?如何改进?
【发布时间】: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。还没有想法。

标签: php security cryptography credit-card mcrypt


【解决方案1】:

IV 实际上似乎没有做任何事情,这让我很担心。这是为什么呢?

初始化向量相当重要——尤其是在加密大量小数据片段时。如果 IV 未修改加密数据,则有些错误。而且,如果您将加密密钥与加密数据存储在同一文件系统上,那么它只是默默无闻的安全性。

【讨论】:

  • 我就是这么想的。一定有什么事。我会看看。至于默默无闻的安全性,完全同意 - 那么我该如何解决呢?守护进程会是最好的方法吗?还是只在单独的网络服务器上运行 PHP 脚本就可以了?
猜你喜欢
  • 2014-06-08
  • 2012-10-12
  • 2015-10-04
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多