我正在编写一个接受敏感客户数据的php应用程序,因此在将其存储到mysql数据库之前,我需要对其进行加密。我将使用mysql的内置AES功能来进行列级加密。
我希望避免将加密密钥存储在服务器上,因此我将提供一个供管理员登录的网页,并输入加密密钥。我希望在应用程序运行时将此密钥存储在内存中,但绝不会永久存储到磁盘中。
做这件事最好的方法是什么?
我可以修改$_SERVER数组来存储请求之间的信息吗?我能用apache以某种方式存储密钥吗?也许是共享内存?
发布于 2011-09-02 01:50:56
我最终将加密密钥存储在一个内存表中。对数据库的所有访问都是通过一组存储过程完成的;存储过程包括执行密钥管理(例如,将密钥插入内存表、更改密钥、检查是否已输入密钥等)以及存储/检索应用程序数据的能力。
使用这种设计,留在应用程序服务器上的数据库凭据只有权通过一组定义的过程进行查询,而无法直接读取加密密钥。
我喜欢这种方法,因为:
SQL
发布于 2011-07-21 04:15:02
与其依赖PHP进行加密,不如使用MySQL原生的方案(一种PECL扩展)。这需要一个私钥和公钥,公钥用于加密,私钥用于解密,密钥可以保存在不同的地方。
发布于 2011-07-21 04:40:13
一种可能性是创建一个RAM磁盘并将密钥存储在那里。
https://stackoverflow.com/questions/6767839
复制相似问题