Stockage des mots de passe avec sha1 et le sel

J'ai un simple script d'inscription réalisée en php et j'étais juste curieux de savoir si la façon dont je le fais c'est assez sécurisé pour stocker les mots de passe utilisateur. Je suis de la génération 32 bits aléatoires de sel et les ajouter à un sha1 mot de passe haché.

//create new validator object
    $validator = new data_validation();
    //validate user input
    $firstName = $validator->validate_fname($firstName); //is the first name a string?
    $lastName = $validator->validate_lname($lastName); //is the last name a string?
    $username = $validator->validate_username($username); //is the username a string?
    $email = $validator->validate_email($email); //is the email in valid format?

    //make sure there isn't duplicate emails
    $valQuery = $link->query("SELECT email FROM users WHERE email = '" .$email. "'");

    if ($valQuery->num_rows == 1) {
        echo "An email is already registered with that address";
        return false;
    }

    //generate a random salt for converting passwords into sha1
    $salt = $link->real_escape_string(bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM)));
    $saltedPW =  $password . $salt;
    $hashedPW = sha1($saltedPW);

    mysqli_connect($db_host, $db_user, $db_pass) OR DIE (mysqli_error());
    //select the db
    mysqli_select_db ($link, $db_name) OR DIE ("Unable to select db".mysqli_error($db_name));

     //our sql query
    $sql = "INSERT INTO users (first_name, last_name, username, email, password, salt) VALUES ('$firstName', '$lastName', '$username', '$email', '$hashedPW', '$salt');";

    //save the updated information to the database          
    $result = mysqli_query($link, $sql) or die("Error in Query: " . mysqli_error($link));

    if (!mysqli_error($link)) 
    {
        $row = mysqli_fetch_assoc($result);
        $_SESSION['user_id'] = $row['user_id'];
        $_SESSION['loggedin'] = TRUE;
        header("Location: ../home");
    }

Aussi, je suis en utilisant une combinaison de la procédure et de la programmation orientée objet en php. La plupart de cela est fait dans la procédure, mais il y a un peu de la programmation orientée objet classes telles que la validation de la classe utilisée dans le script ci-dessus. Cela peut-il poser des problèmes de performances à l'aide de deux styles?

quelle était la question?
double possible de Secure hash et du sel pour PHP les mots de passe
Pas un doublon. Je ne vois pas quoi que ce soit de semblable à mon script ou une question? Et je suppose que je suis juste en train de vous faire une opinion si ce script serait assez sécurisé pour stocker les mots de passe des utilisateurs à grande échelle?
Votre question est juste un cas particulier de celui -- de manière sûre de hachage des mots de passe en PHP. Les réponses à cette question s'applique à la vôtre (non, ta méthode n'est pas sécurisé).
C'est tout ce que vous aviez à dire. Pas besoin de m'accuser de poster une double question. Je vous remercie de votre réponse, mais juste parce que certaines questions sont posées de la même manière ne signifie pas qu'ils sont en double. La question que vous dirigé vers est plein d'informations utiles, mais il ne répond pas à ma question. Vous cependant, ne. Donc, je vous remercie.

OriginalL'auteur Ty Bailey | 2012-10-29