v2.5.2
Giriş yap

Bcrypt ile giriş yapma

mrcrazy
749 defa görüntülendi

Bcrypt ile giriş yapma!

Herkese merhabalar saygı değer hocalarım,
Ben bir siteye e-ticaret ile alakalı bir panel kurdum fakat temalarını ve gerekli özelliklerini beğenmediğim için kendim yazmaya karar verdim.
bu e ticaret sistesinde bir kullanıcı ekleyince alltaki gbi şifreliyor, bende kendi panelimde bu panelin şifrelemesine göre giriş yaptırmam gerekiyor ne yaparsam yapayım çözemedim yardımcı olurmusunuz acaba ?
Saatlerdir denedim ama bi türlü yapamadım, yardımcı olursanız sevinirim.
Not : daha acemiyim, ona göre yardımcı olursanız sevinirim.

<?php
session_start();
include 'db.php';

if (isset($_POST['girisyap'])) {
	
$email=htmlspecialchars($_POST['email']);
$password=htmlspecialchars($_POST['password']);
$passwordguclu=password_hash("sha256", $password, PASSWORD_DEFAULT);



$tblclientssor=$baglanti->prepare("SELECT * from tblclients where email=:email and password=:password");
$tblclientssor->execute(array(
'email'=>$email,
'password'=>$passwordguclu

));

$var=$tblclientssor->rowCount();

if ($var >0) {
	$_SESSION['girisbelgesi']=$email;
	Header("Location: index.php?durum=welcome");

}
else {
	Header ("Location: login.php?durum=hata");

}

}
remzikocak
1332 gün önce

Öncelikle password_hash fonksiyonunu hatali kullaniyorsunuz. Asagidaki örnek'de iki farkli alogritma yazdim. Oradan parametrelere bakabilirsiniz.

$password = '123456';
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// veya burada daha güclü Argon2 sifrelemeyi kullanabilirsiniz. PASSWORD_ARGON2ID, PHP 7.4 ve üzeri sürümlerde calisir.
$hashedPassword = password_hash($password, PASSWORD_ARGON2ID, [
  'memory_cost' => 2048,
  'time_cost'   => 4,
  'threads'     => 3,
]);

// Veri tabanindan üyeyi cekmek icin sadece kullanici adi'ni kullanin

if(password_verify($password, $hashedPassword))
{
  	echo 'gecerli sifre';
} else {
 	echo 'gecersiz sifre'; 
}

Sizin kodunuza entegre edecek olursak su sekilde deneyebilirsiniz

session_start();
include 'db.php';

if (isset($_POST['girisyap'])) {
	
  $email = htmlspecialchars($_POST['email']);
  $password = htmlspecialchars($_POST['password']);
  
  // bu kodu kayit esnasinda sifreyi kayit ederken kullanacaksiniz. 
  //$passwordguclu = password_hash($password, PASSWORD_DEFAULT);

  $tblclientssor = $baglanti->prepare("SELECT * from tblclients where email=:email");
  $tblclientssor->execute(array(
      'email' => $email,
  ));
  $user = $tblclientssor->fetch(PDO::FETCH_ASSOC);

  if ($tblclientssor->rowCount() && password_verify($password, $user['password'])) {
      $_SESSION['girisbelgesi']=$email;
      Header("Location: index.php?durum=welcome");

  } else {
      Header ("Location: login.php?durum=hata");

  }

}