Bu kod ile oturum için kullanıcı şifrelerini karşılaştırmak nasıl?

0 Cevap php

Ben birlikte, bu tamamen veya stackoverflow büyük insanlar bazı büyük yardımıyla oluşturulan öğrenme amaçları, bir giriş sistemi için buraya bazı kod var ve ben tuz ve karma ayrı saklamak için değil söylendi, ama oldukça. Ben kullanıcı giriş çalıştığında ben şifreleri karşılaştırmak için gidiyorum nasıl merak ediyorum. tuzu depolanmış değilse, nasıl ben iki karşılaştırabilirsiniz. Herkes yardımcı olabilir?

require("constants.php");
$DBH = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

function createSalt() {
    $length = mt_rand(64, 128);
    $salt = '';
    for ($i = 0; $i < $length; $i++) {
        $salt .= chr(mt_rand(33, 255));
    }
    return $salt;
}
//Salt function created by ircmaxell

function registerNewUser() {
    //Check to see if     Username Is In Use//
    $q = $DBH->prepare("SELECT id FROM users WHERE username = ?"); 
    $username = filter_var($username, FILTER_SANITIZE_STRING);
    $data = array($username);
    $q->execute($data);
    $row = $q->fetch();

    if ($row === false) { 
        //If Username Is Not Already In Use Insert Data//
        $hash = hash('sha256', $pass);
        $salt = createSalt();
        $hash = hash('sha256', $salt . $hash . $pass);  //UPDATED
        $data = array($username, $hash, $salt);
        $qInsert = $DBH->prepare(
            "INSERT INTO users (username, password, salt) values (?, ?, ?)"
        );
        $qInsert->execute($data); //Inserts User Data Into Table//  
    }
}

0 Cevap