我正在用登录表单搜索简单哈希与密码。 我遇到了这个http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/。在这里他密码,创建一个盐,然后再次哈希密码&盐。 我建立一个登录表单自己,这是abc.php在提交PHP后密码是否以文本形式发送?
<form name="register" action="register.php" method="post">
Username: <input type="text" name="username" maxlength="30" />
Password: <input type="password" name="pass1" />
Password Again: <input type="password" name="pass2" />
<input type="submit" value="Register" />
</form>
提交后去,register.php,它具有
$u=$_REQUEST['username'];
$p=$_REQUEST['pass1'];
//salt create function
//hashing code
//final hash password
,然后提交$ U在& '最后密码'数据库。
问:我的问题是从abc.php提交表单时,密码是否为文本?
如果是,那么有人读它的机会,然后有什么需要散列密码,因为即使我登录,我会提交页面,并从$ _REQUEST可能检索通行证和用户名另一个页面,在那里它将被检查,它作为文本旅行,因此可以被某人读取。
密码有两个问题:存储和传输。存储是最关键的,你*必须*散列存储的密码。在传输过程中保护它也是一个好主意,但并不重要。破解一个服务器并读取整个数据库要比将自己插入到/从服务器的每个HTTP请求的中间以记录密码要容易得多。所以,散列(如本文所述)是必需的。但如果你有办法,那么你应该把你的整个登录区域放在SSL/https下。如果SSL处于活动状态,此处的代码示例将非常安全。 – 2012-01-08 08:55:00
@AbhiBeckert谢谢。 – Nikhar 2012-01-08 09:05:03