首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该在哪里存储php的加密密钥?

我应该在哪里存储php的加密密钥?
EN

Stack Overflow用户
提问于 2011-07-21 04:07:52
回答 5查看 7.9K关注 0票数 5

我正在编写一个接受敏感客户数据的php应用程序,因此在将其存储到mysql数据库之前,我需要对其进行加密。我将使用mysql的内置AES功能来进行列级加密。

我希望避免将加密密钥存储在服务器上,因此我将提供一个供管理员登录的网页,并输入加密密钥。我希望在应用程序运行时将此密钥存储在内存中,但绝不会永久存储到磁盘中。

做这件事最好的方法是什么?

我可以修改$_SERVER数组来存储请求之间的信息吗?我能用apache以某种方式存储密钥吗?也许是共享内存?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-02 01:50:56

我最终将加密密钥存储在一个内存表中。对数据库的所有访问都是通过一组存储过程完成的;存储过程包括执行密钥管理(例如,将密钥插入内存表、更改密钥、检查是否已输入密钥等)以及存储/检索应用程序数据的能力。

使用这种设计,留在应用程序服务器上的数据库凭据只有权通过一组定义的过程进行查询,而无法直接读取加密密钥。

我喜欢这种方法,因为:

SQL

  • 密钥不存储在文件系统中-防止在生命周期结束时硬件处理出现问题,也可防止系统窥探administrators

  • The应用程序代码无法访问密钥(输入密钥时除外),因此它唯一的驻留位置是在数据库进程中。

  • 所有用于加密/解密的逻辑都嵌入到

  • 查询中,因此无需担心应用程序代码是否正确执行此操作-非常便于维护。
票数 4
EN

Stack Overflow用户

发布于 2011-07-21 04:15:02

与其依赖PHP进行加密,不如使用MySQL原生的方案(一种PECL扩展)。这需要一个私钥和公钥,公钥用于加密,私钥用于解密,密钥可以保存在不同的地方。

票数 7
EN

Stack Overflow用户

发布于 2011-07-21 04:40:13

一种可能性是创建一个RAM磁盘并将密钥存储在那里。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6767839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档