Autor | Zpráva | ||
---|---|---|---|
cs.web Profil |
#1 · Zasláno: 25. 11. 2013, 18:03:59
Dobrý den, mám v databázi uživatelů a jejich hesla jsou zašifrována v sha256.
Mám taky udělané přihlášení ale hesla jsou v něm šifrována pomocí md5. Kod vypadá takhle: <?php ob_start(); session_start(); if(isset($_POST['username'])){ require_once 'db.php'; $username = $_POST['username']; $password = md5($_POST['password']); $query = mysql_query("SELECT * FROM `authme` WHERE `username` = '$username' and `password` = '$password'") or die (mysql_error()); $Vysledek = mysql_fetch_array($query); if($Vysledek['username']){ $_SESSION['prihlasen'] = 1; $_SESSION['username'] = $Vysledek['username']; $_SESSION['id'] = $Vysledek['id']; $bl="neco.php"; header("location: $bl"); exit; }else{ $bl="chyba.php"; header("location: $bl"); exit; } mysql_free_result($query); }else{ echo "Zkouska"; } ob_end_flush(); ?> Jak přesně skript předělat aby hesla byla šifrována přes sha256 ? Zkoušel jsem prostě md5 zaměnit s sha256 ale potom skript háže chybu. |
||
Bertram Profil |
#2 · Zasláno: 25. 11. 2013, 19:47:46
cs.web:
> Jak přesně skript předělat aby hesla byla šifrována přes sha256 ? > Zkoušel jsem prostě md5 zaměnit s sha256 ale potom skript háže chybu. Možná myslíte toto: $password = hash('sha256', $_POST['password']); |
||
cs.web Profil |
#3 · Zasláno: 25. 11. 2013, 20:45:06
Skript jsem upravil, takže těď vypadá takhle ale pořád i po zadání správných údajů z databáze ukazuje že heslo není správné.
login.php <?php ob_start(); session_start(); if(isset($_POST['username'])){ require_once 'db.php'; $username = $_POST['username']; $password = $_POST['password']; $auth_password = hash('sha256', $password); $query = mysql_query("SELECT * FROM `authme` WHERE `username` = '$username' and `password` = '$auth_password'") or die (mysql_error()); $Vysledek = mysql_fetch_array($query); if($Vysledek['username']){ $_SESSION['prihlasen'] = 1; $_SESSION['username'] = $Vysledek['username']; $_SESSION['id'] = $Vysledek['id']; $bl="/admin/index.php?jsi=prihlasen"; header("location: $bl"); exit; }else{ $bl="/admin/index.php?chyba=403"; header("location: $bl"); exit; // echo "Zadal jsi špatné údaje"; } mysql_free_result($query); }else{ echo "Zde nic není."; } ob_end_flush(); ?> index.php <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <center> <h1>Přihlášení</h1> <form action="login.php" method="post"> <input type="hidden" name="sent" value=""/> <input type="text" name="username" maxlength="32"/> <strong>Jméno</strong> <br/> <input type="password" name="password" maxlength="32"/> <strong>Heslo</strong> <br/> <input type="submit" name="send" value="Přihlaš"/> </form> |
||
Micruss Profil |
#4 · Zasláno: 25. 11. 2013, 21:18:20
porovnejte heslov db a potom odeslaný heslo... jestli se neshoduje tak je někde chybka :-)
|
||
cs.web Profil |
#5 · Zasláno: 25. 11. 2013, 21:19:14
Jak mám ale heslo rozšifrovat ?
|
||
okolojsoucí Profil * |
#6 · Zasláno: 25. 11. 2013, 21:22:38
cs.web:
Nelze rozšifrovat běžným způsobem |
||
Bertram Profil |
#7 · Zasláno: 25. 11. 2013, 21:22:58
cs.web:
$sql = "SELECT `username`, `password` FROM `authme` WHERE `username` = '$username'"); a poté porovnat vrácenou hodnotu hesla s touto $auth_password = hash('sha256', $password); |
||
Časová prodleva: 10 let
|
0