我有一个users.txt文件,其中包含以此格式存储的用户名和密码(出于教育目的,它必须位于.txt文件中):
username1:password1
USERNAME2:密码2
使用md5加密密码。我还有一个登录页面,用户输入用户名和密码。我的问题是,如何检查用户输入的用户名和密码是否正确?
答案 0 :(得分:1)
密码应使用不可逆的方法保存以确保安全。当需要保存密码时,它使用不可逆功能进行编码并存储。当需要验证密码时,它会再次使用不可逆函数进行编码,并将结果与存储的版本进行比较。
在PHP中很简单,只需在存储密码时使用OT.initPublisher
,在验证密码时使用password_hash
。这是一种非常安全的方法。
答案 1 :(得分:0)
您可以这样做:
<?php
$user_input = $_POST['user'];
$password_input = md5($_POST['pass']);
$file = fopen('users.txt', 'r');
while(!feof($file)){
$line = fgets($file);
list($user, $password) = explode(':', $line);
if(trim($user) == $user_input && trim($password) == $password_input){
echo 'Logged in';
break;
}
}
fclose($file);
使用此代码,您的文件将逐行处理,在每行中用户和密码都是通过以下代码获得的:list($user, $password) = explode(':', $line);
然后代码将检查它们是否等于用户输入。如果用户和密码正确,那么您将获得Logged in message
并关闭文件。