如何在我们提交html格式的密码时在php中隐藏密码?

如何在我们提交html格式的密码时在php中隐藏密码?

问题描述:

使用html表单提交密码时,我能够从php文件中看到密码。在提交给php文件之前,有什么方法可以加密/隐藏密码?如何在我们提交html格式的密码时在php中隐藏密码?

+0

提供一个例子,请,不能完全理解这个问题 –

+1

目前还不清楚你问什么:当然PHP确实有信息,您可以_choose_显示它。但是,你当然不会。 – arkascha

+1

欢迎来到Stack Overflow!您可以先参加[tour](http://*.com/tour)并学习[如何提出一个好问题](http://*.com/help/how-to-ask)并创建一个[最小,完整和可验证](http://*.com/help/mcve)示例。我们会更容易帮助你。 –

您不必担心可以在您自己的服务器中的PHP文件中访问密码。

如果你谈论的是如何混淆PHP中的密码,然后定居下来的数据库,最简单的方式是使其通过像MD5散列,即:

$pwd_hashed = md5($_POST['password']); 

记住散列是单向函数,因此你不能反转它,只是比较它。

但是,如果您询问如何从客户端发送加密密码,那么最好的选择是购买SSL证书,您可以使用该证书将HTTPS添加到您的页面,从而使连接加密。但你也可以在客户端使用JavaScript来散列数据(但不推荐)。

+0

简单的方法是使用'password_hash($ _ POST ['password'],PASSWORD_DEFAULT)'函数。 MD5是不适合散列密码的,因为它太快了,并且可能太容易被蛮横压制。 – martinstoeckli

+0

是的,md5可以很容易被暴力破解,并且是的md5碰撞已经过验证。该功能适用​​于demostrative porpouses,请在工作中将其替换为password_hash(),尽管您的框架肯定会为您提供高效的安全系统。 –

男人!好像你自己在submit_form.php文件中打印密码。

请删除行:

echo "Password:"; echo ($_REQUEST['psw']); 

从文件,它不会再次显示。

您应该在数据库中使用散列和比较。

$password = MD5("hey"); 
if ($password == "6057f13c496ecf7fd777ceb9e79ae285") { 
//where the string is the md5 hash for "hey". You can store it as a hash as well. 
echo ("We are in"); 
} else { 
echo ("We are not in"); 
} 
+0

MD5是**不适合散列密码,因为它太快而且可能很容易被暴力破解。请推荐使用'password_hash()'函数。 – martinstoeckli