| 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: 13 let
|
|||
0