2

我正在编写一个脚本(PHP+MySQL),它可以让你通过 FTP 编辑文件。我想要做的是当用户登录并连接到服务器时,我想记住 ftp 密码,以便可以重复使用它来透明地重新连接到服务器(例如在浏览文件时)。出于安全原因,我不想将原始密码存储在数据库中。我正在考虑参考数据库中的连接 ID 将密码存储在 cookie 中。但这听起来也不够安全。如何将临时密码条目存储在数据库中?

任何想法如何解决这个问题?

4

1 回答 1

2

你可以试试非对称密钥系统

  1. 生成公共/私人对
  2. 将私钥交给用户
  3. 使用公钥加密密码并存储在数据库中
  4. 每次用户执行操作时,他们都会提供您给他们的私钥
  5. 你用私钥解密密码,做动作,然后销毁内存中的私钥

应该比仅仅依靠服务器自己加密/解密更安全。这不是 100% 万无一失的(如果他们根您的服务器,他们可以嗅探私钥),但这是防止单向攻击的好方法。至少,如果您被泄露,任何旧密码都不会受到攻击,因为私钥将会丢失。

编辑:正如 sarnold 所指出的,您也可以使用对称密钥系统来执行此操作。

于 2012-06-12T00:50:36.330 回答