我想知道是否有一种安全的方式来提供带有URL的密码(例如?p = mypassword) 我如何加密和解密这样的密码,这样才能保证安全。
我猜md5在我的情况下不起作用,因为密码必须仍然可读。它是一个FTP passwort,它传递给ftp_connect。我认为md5在这种情况下不起作用,因为我必须查询字符串是否匹配md5哈希。但是我不能这样做。
任何想法?
答案 0 :(得分:6)
嗯:通过POST发送+ SSL
SSL可确保第三方在传输过程中无法轻松读取密码。通过POST发送它只是将变量发送到URL外部的服务器并将其保留在服务器日志之外(希望如此)。这样做可以将其隐藏在浏览器历史记录或人们嗅探HTTP之前。
但是,当使用ftp_login()
在HTTP中嘲弄SSL时,是不是ftp_connect()
发送此明文?确保之后使用ftp_ssl_connect()
到您的服务器。请参阅ftp_ssl_connect() PHP手册条目
答案 1 :(得分:2)
如果您的网站在查询字符串中接受加密密码,则该加密字符串(虽然不可读)在功能上与密码本身没有区别。
如果我输入CIA的密码是“密码”,但如果我说“5f4dcc3b5aa765d61d8327deb882cf99”,他们会让我进来,这两个字符串都是我的密码,都需要保护。
答案 2 :(得分:0)
而不是使用单向散列(MD5,SHA1)。我认为你需要一个加密 - 解密功能。看一下这个http://www.php.net/manual/en/function.mcrypt-encrypt.php。
上面的示例,您可以使用密钥加密并在URL中传递密码。一旦PHP收到密码,您就可以解密密码并使用它来连接FTP。唯一的限制是密钥必须在PHP服务器上以及生成URL的任何位置都可用。字符串的大小也有限制,但我认为你一般会在这些范围内。