2011-05-30 3 views
0

Lors de l'insertion d'un nouvel utilisateur dans une base de données, je souhaite hacher le mot de passe. c'est ce que j'ai.base de données de vérification de fonction de hachage php

static function getLastId(){ 
     global $database; 
     $sql = 'SELECT ID from users ORDER BY id DESC LIMIT 1' ; 
     $result = $database->query($sql);   
     return $result; 
    } 


static function create_user($username,$password){ 
    global $database; 
    $lastID = self::getLastId() + 1;  
    $ePassword = $database->escape_value($password); 
    $hash = hash('sha256', $lastID . $ePassword); 
    $sql = "INSERT INTO ". self::$table_name . " (username, password, first_name, last_name, power) VALUES "; 
    $sql .= "('{$database->escape_value($username)}', '{$hash}', 'asd' , 'asd', 'user') "; 
    $query = $database->query($sql); 
    return ($query)? true : false; 
} 

quand je fais une impression ou de décharge var $ lastId j'obtenir 13. Cependant la recherche d'une base de données que je n'ai que moi 1 utilisateur, avec un ID de 1. J'ai même tronquée la table, mais je suis toujours obtenir 13. pas sûr pourquoi. Fondamentalement, l'idée est que je veux ajouter $ lastID au mot de passe, de sorte qu'il est beaucoup plus difficile à inverser. J'ai besoin de savoir quel sera le prochain ID, à des fins de connexion.

+0

Vous devez utiliser des sels au lieu de cette dernière idée. Vous pouvez en apprendre plus à ce sujet ici: http://phpsec.org/articles/2005/password-hashing.html –

+1

Au lieu d'utiliser sha256, essayez d'utiliser un algorithme plus sécurisé comme bcrypt: [http://codahale.com/how- to-safe-store-a-password /] (http://codahale.com/how-to-safely-store-a-password/) –

Répondre

2
$result = $database->query($sql);   
return $result; 

vous retournez la ressource de résultat au lieu des données réelles (je suppose que oui, à moins que votre module de base de données $ fait automatiquement), vous pouvez:

$result = $database->query($sql);  
$data = mysql_fetch_array($result); 
return $data['ID']; 
+0

merci. Je ne peux pas croire que j'ai manqué ça – dgamma3

Questions connexes