Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t登录到我的安全登录脚本PHP和MySQL_Php_Mysql_Login - Fatal编程技术网

Can';t登录到我的安全登录脚本PHP和MySQL

Can';t登录到我的安全登录脚本PHP和MySQL,php,mysql,login,Php,Mysql,Login,我最近开始学习PHP,并试图按照本指南创建一个安全登录 除了登录()之外,其他一切似乎都很好。我稍微调整了一下。 我放置了一些回音以尝试锁定错误,如果出现以下情况,则会在密码比较中返回错误: 函数返回:登录函数错误1 位于includes/functions.php中的函数登录名: $password = hash('sha512', $password . $salt); if ($db_password == $password) { ech

我最近开始学习PHP,并试图按照本指南创建一个安全登录

除了登录()之外,其他一切似乎都很好。我稍微调整了一下。 我放置了一些回音以尝试锁定错误,如果出现以下情况,则会在密码比较中返回错误:

函数返回:登录函数错误1

位于includes/functions.php中的函数登录名:

    $password = hash('sha512', $password . $salt);

    if ($db_password == $password) {
                echo "Password is correct!";
sha512.js来自pajhome.org。uk/crypt/md5/sha512.html, 以及上面提到的WikiHow的表单

连接不是问题,我使用相同的连接插入到MySQL,它可以工作

感谢大家对我问题的关注,如果我没有透露足够的信息,请提供建议

编辑:删除了很多代码,正如@SeanWM评论的那样,我不应该期望没有人检查所有代码

@罗伯特·罗萨斯谢谢你的帮助。密码确实不匹配。 输出为:

登录函数错误1 c2d872cb4c6a1b3c22ce35fb9dc0dfca14aa6d48与C2D872CB4C6A1B3C22CE35FB9DC0DFCA14AA6D48CC2E8C3DCF02C87A3DFB7E3FEC2A098B932C1165590E43BB89AF058220FF8D75C666FE57EF7206B74D5F9AF

请查看密码是如何构造的:

它从注册表形式转到.js:

   // Add the new element to our form. 
   form.appendChild(p);
   p.name = "p";
   p.type = "hidden";
   p.value = hex_sha512(password.value);
然后通过php:

   $password = filter_input(INPUT_POST, 'p', FILTER_SANITIZE_STRING);

   // Create a random salt
    $random_salt = hash('sha512', uniqid(openssl_random_pseudo_bytes(16), TRUE));

    // Create salted password 
    $password = hash('sha512', $password . $random_salt);
然后插入MySQL。如果你能再次为我指出正确的方向,我将不胜感激

编辑2:多亏@Second Rikudo的输入,它在删除双重散列后工作了

但根据第二里库多的评论,“sha512不安全”
还有@tadman“令人担忧的是,该教程不完整,使用了危险的坏做法” 我决定修改代码
按照第二个Rikudo的建议。

如果我弄错了,请纠正我,但是您在注册时对密码进行了两次哈希运算(一次使用JavaScript,一次使用PHP),但是当您登录时,您只进行了一次哈希运算(使用PHP)

作为旁注,sha512不安全。升级到PHP5.5以使用和其他密码功能


如果您无法升级,请参阅(他实际上是在PHP中添加了
密码的人,所以他的库很好)。

只是想让您知道,我甚至没有读过这篇文章。请不要发布所有代码并要求我们修复。尽量缩小范围,使问题更具体一点。您应该阅读。@SeanWM您和其他18位观众在发表此评论时=)如果您无法登录,那么我猜它确实是安全的。echo“登录函数错误1”$db_password.。vs“$password”。
”;。。。。在输出后,该教程令人担忧地不完整,并且使用了危险的错误实践,如字符串插值,而不是严格使用SQL占位符。为什么你要建立自己的登录系统,而a会为你提供一个呢?谢谢你的输入Rikudo Sennin^。在我去掉双重散列之后,它终于起作用了。但我会听从你的建议,利用ircmaxell的库修改我的代码。@Miguel_-Ryu:很高兴听到这个消息!如果你的答案解决了你的问题,考虑通过点击下面的问题得分的绿色大蜱记接受它。这将标志着问题的完整性。