Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]hasowanie hasla
Forum PHP.pl > Forum > Przedszkole
jobp33
A więc za hashowalem w phpmyadmin przy pomocy szyfru SHA1 hasło do konta. I teraz moje próby odhashowania nie przynoszą skutku.
  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title></title>
  5. </head>
  6. <body>
  7. <?php
  8.  
  9.  
  10. echo"Error:".$polaczenie->connect_errno;
  11. }else{
  12.  
  13. $login = $_POST['login'];
  14. $haslo = $_POST['haslo'];
  15. $pass = SHA1($haslo)
  16.  
  17.  
  18.  
  19. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  20. $haslo= htmlentities($pass, ENT_QUOTES, "UTF-8");
  21.  
  22.  
  23. if ($rezultat=@$polaczenie->query(
  24. sprintf("SELECT * FROM uzytkownicy WHERE login='%s' AND haslo=SHA1('%s')",
  25. mysqli_real_escape_string($polaczenie, $login),
  26. mysqli_real_escape_string($polaczenie, $pass ))))
  27. {
  28.  
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35. }
  36.  
  37. ?>
  38. </body>
  39. </html>
  40.  
kapslokk
  1.  
  2. $haslo = $_POST['haslo'];
  3. $pass = SHA1($haslo)
  4. ...
  5. sprintf("SELECT * FROM uzytkownicy WHERE login='%s' AND haslo=SHA1('%s')",
  6. mysqli_real_escape_string($polaczenie, $login),
  7. mysqli_real_escape_string($polaczenie, $pass ))))

Wychodzi na to, że szukasz podwójnie zahashowanego hasła.
KsaR
$pass = SHA1($haslo)
Srednika zapomniales + tak jak kapslokk pisal.
I nie powinno sie podwójnie hashowac, .. A co dopiero takim algorytmem...
md5 i sha1 jedne z najslabszych...

Btw. "szyfru"... Szyfr to cos co odkodujesz.. Sha ma nawet Hash w nazwie (securehashalgorithm)..
I hash co najwyzej spalisz a nie odkodujesz tongue.gif

Btw 2.
$login = htmlentities($login, ENT_QUOTES, "UTF-8");
$haslo= htmlentities($pass, ENT_QUOTES, "UTF-8");
... Bron sie przed SQL Injection a nie XSS w tym wypadku :-P
jobp33
  1.  
  2. $login = $_POST['login'];
  3. $haslo = $_POST['haslo'];
  4. $pass = SHA1($haslo);
  5.  
  6. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  7. $pass = htmlentities($pass, ENT_QUOTES, "UTF-8");
  8.  
  9.  
  10. if ($rezultat=@$polaczenie->query(
  11. sprintf("SELECT * FROM uzytkownicy WHERE login='%s' AND haslo='%s'",
  12. mysqli_real_escape_string($polaczenie, $login),
  13. mysqli_real_escape_string($polaczenie, $pass ))))
  14. {

Nie jestem pewien ale chyba usuneąem te podwójne hashowanie smile.gif. Niestety dalej nie pozwala wejść.
Jako ciekawostkę mogę dodać że zmieniłem na md5 i teraz już działa co by jednak ciekawość zaspokoić męczy mnie te SHA1.
Tomplus
Nie wiem na jakim etapie jesteś, ale PHP ma dobrą funkcję do hashowania hasła i sprawdzania poprawności po wpisaniu:


http://php.net/manual/en/function.password-hash.php
http://php.net/manual/en/function.password-verify.php

  1. $hash = password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."\n";
  2.  
  3. if (password_verify('rasmuslerdorf', $hash)) {
  4. echo 'Password is valid!';
  5. } else {
  6. echo 'Invalid password.';
  7. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.