Задать вопрос
@coder_43

Как сменить хэш PHP с MD5 на SHA256?

Как сменить ХЭШ с MD5 на SHA256 авторизации?

auth.php:

if(empty($_COOKIE["pass"]) || $_COOKIE["pass"]==""){
	header("Location: login.php");
}
else{
	$per = explode(":", $_COOKIE["pass"]);
	$pass_md5 = $per[0];
	$login = $per[1];
$search = mysql_query("SELECT * From ".$account['table']." WHERE ".$account['name']."='$login'");
$user = mysql_fetch_array($search);
	if($pass_md5 != md5(md5($user["".$account['pass'].""]))){
		setcookie("pass", "", 0, "/");
		header("Location: login.php");
	}
}
//?>

authorization.php:

if(isset($_POST['login']))
{	
	$name = $_POST['nick'];
	$password = $_POST['password'];
	$search = mysql_query("SELECT * FROM `".$account['table']."` WHERE `".$account['name']."`='$name'");
	if(mysql_num_rows($search)!=0)
	{
		$user = mysql_fetch_array($search);
		if($user["".$account['pass'].""]==$password)
		{
			setcookie("pass", md5(md5($password)).":".$name, time() + 60*100, "/");
			header("Location: ./");
		}
		else
		{
			//$info_pass="<div class=\"alert alert-danger\">
  //<strong>Ошибка!</strong> Пароль не правильный.
//</div>";
            $info_pass="<div class=\"alert alert-danger\">
  <strong>Ошибка!</strong> Пароль не правильный.
</div>";
		}

	}
	else
	{
		$info_user = "<div class=\"alert alert-danger\">
  <strong>Ошибка!</strong> Игрок не найден.
</div>";
	}
}
if($_GET["access"]=="exit"){
	setcookie("pass", "", "0", "/");
	header("Location: ./login.php");
}	
?>
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Простой 15 комментариев
Пригласить эксперта
Ответы на вопрос 1
NikFaraday
@NikFaraday
Student full-stack Developer
Попробуйте так:

auth.php:
$pass_sha256 = hash('sha256', $user["".$account['pass'].""]); // Хеширование пароля с помощью SHA256
if(!hash_equals($pass_sha256, hash('sha256', $password))) {
    setcookie("pass", "", 0, "/");
    header("Location: login.php");
}


authorization.php:
if($user["".$account['pass'].""]==$password) {
    $pass_sha256 = hash('sha256', $password); // Хеширование пароля с помощью SHA256
    setcookie("pass", $pass_sha256 . ":" . $name, time() + 60*100, "/");
    header("Location: ./");
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы