【问题标题】:how do I encrypt a password and then retrieve it and match it against user input? [duplicate]如何加密密码,然后检索它并将其与用户输入相匹配? [复制]
【发布时间】:2014-05-16 23:44:00
【问题描述】:

没有解密功能。 crypt() 函数使用单向 算法。

我从未使用过加密。有人能解释一下在加密密码时如何使用它吗?

echo "<br>" . $salt = '$2a$07$2';
echo "<br>" . $digest = crypt('mypassword', $salt);

$user_input = "mypassword" ;

if (crypt($user_input, $digest) == $digest) {echo "<br>".$fine ;}

如何加密并找回密码?

【问题讨论】:

  • 加密后无法找回密码。您可以加密一些文本(用户建议的密码)并将其与旧的加密结果进行比较(比较哈希)。如果它们相等 - 密码匹配。

标签: php


【解决方案1】:

这很简单,你要做的就是以下

一开始获取用户密码时可以使用md5方法加密

$password= md5($_POST["passwordFromRegistrationForm"]);//getting the password from  registration form and encrypt it .

现在您可以编写一个 mysql 查询以将其插入到您的数据库中。

当您想将存储在数据库中的密码与来自登录表单的密码匹配时,您必须检索存储在数据库中的密码,然后您必须使用来自登录表单的密码加密相同的加密方法,然后在两个密码之间进行比较。

$retrievedPassword = write a select statement to retrieve it from database; 
$passwordUserLogInFrom =  md5($_POST["passwordFromLogInForm"]);
if($retrievedPassword == $passwordUserLogInFrom )
{
   //write your code
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2021-11-09
  • 2015-11-18
  • 2011-10-21
  • 2014-05-20
  • 1970-01-01
相关资源
最近更新 更多