Comment crypter un mot de passe dans WordPress en utilisant WordPress sel?

Je veux crypter le mot de passe envoyé dans la base de données, avec le standard de WordPress sel, tout comme WordPress est-il lorsque vous créez un nouvel utilisateur. Je sais que je peux trouver mon sel dans l'wp-config.php. Donc je n'ai pas besoin de générer le sel; j'ai juste besoin de crypter le mot de passe.

De sorte que lorsque je créer mypassword0, ce qui est envoyé à la base de données est la chaîne de texte chiffré par mon WordPress sel.

Voici mon code d'origine qui fonctionne. (merci Yadav Chetan pour votre aide!) Maintenant j'ai juste besoin d'ajouter le sel à un code de chiffrement.

  <?php
        if(isset($_POST['submit'])){

        $query = "INSERT INTO mytable_one
          (user, pass)
          VALUES
          ('".$_POST['user']."', '".$_POST['pass']."')";

        $query = "INSERT INTO mytable_two
          (fname, lname)
          VALUES
          ('".$_POST['fname']."', '".$_POST['lname']."')";

        mysql_query($query);

         }else{
    ?>
    <div class="content">
        <form method="post">
            <div><strong>First Name:</strong><span class="errortext">*</span></div>
            <div><input id="first-name" name="fname" type="text" /></div>

            <div><strong>Last Name:</strong><span class="errortext">*</span></div>
            <div><input id="last-name" name="lname" type="text" /></div>

            <div><strong>User:</strong><span class="errortext">*</span></div>
            <div><input id="user-login" name="user" type="text" /></div>

            <div><strong>Password:</strong><span class="errortext">*</span></div>
            <div><input id="user-pass" name="pass" type="text" /></div>

            <div><input id="submit-button" value="submit" type="submit" />
        </div>          
        </form>
    <?php }?>

Mise à JOUR:

RRikesh m'a suggéré de changer le mysql_* WPDB code. J'ai donc essayé de le changer à wpdb, et aussi j'ai besoin de l'intégrer dans le code des autres. Alors pouvez-vous m'aider à corriger ce code mis à jour?

<?php
    if(isset($_POST['submit'])){


    $firstname = $_POST['fname'];
    $lastname = $_POST['lname'];
    $username = $_POST['user'];
    $password = $_POST['pass'];

    $wpdb->query( 
        $wpdb->prepare( 
           "INSERT INTO  mytable_one
          (user, pass) VALUES (%s, %s)",
             $username,
             wp_hash_password($password)
      )
    );
    $wpdb->query( 
        $wpdb->prepare( 
            "INSERT INTO  mytable_two
            (fname, lname) VALUES (%s, %s)",
               $firstname,
               $lastname,
        )
    );

    }else{
?>
<div class="content">
    <form method="post">
                <div><strong>First Name:</strong><span class="errortext">*</span></div>
                <div><input id="first-name" name="fname" type="text" /></div>

                <div><strong>Last Name:</strong><span class="errortext">*</span></div>
                <div><input id="last-name" name="lname" type="text" /></div>

                <div><strong>Username:</strong><span class="errortext">*</span></div>
                <div><input id="user-login" name="user" type="text" /></div>

                <div>Password:</div>
                <div><input id="user-pass" name="pass" type="text" /></div>

        <div><input id="submit-button" value="submit" name="submit" type="submit" /></div>          
    </form>
<?php }?>


UPDATE2

J'ai été incapable d'obtenir le WPDB méthode de travail. cependant, à l'aide de mon dio méthode, j'ai pu a le mot de passe. Voici le code de travail:

    <?php
        if(isset($_POST['submit'])){

            $password = $_POST['user_pass'];
            $hash = wp_hash_password('$password');

            $query = "INSERT INTO wp_users
              (fname, lname, user, pass) VALUES ('".$_POST['fname']."', '".$_POST['lname']."', '".$_POST['user']."', '".$hash."')";

            mysql_query($query);

        }else{
    ?>

Peut-être que je devrais ouvrir une nouvelle question au sujet de la WPDB parce que cette question a été sur le hachage du mot de passe, qui est résolu.

Tout d'abord, ne pas utiliser $_POST dans vos requêtes, ou de la mysql_* fonctions. Utiliser MySQLi ou PDO à la place. Deuxièmement, vous devrez générer de sel, tel qu'il est différent par utilisateur. Aussi, vous voulez stocker le sel avec l'utilisateur.
il fonctionne bien pour moi, mais si vous avez une meilleure méthode n'hésitez pas à visiter cette question et de donner une meilleure réponse: stackoverflow.com/questions/16010409/..., Aussi loin que le sel, qui ne répond pas à ma question.
Bien sûr qu'il fonctionne, c'est juste très dangereux. Google pour "SQL injection" et vous allez en savoir plus. Aussi loin que le sel, avez-vous essayé quelque chose?
merci pour l'entrée, j'aimerais entendre votre méthode alternative
Et par la manière, le POSTE est uniquement sur la page d'administration où seulement 2 ou 3 administratif enregistré les utilisateurs auront accès. les visiteurs de la page ne sera jamais voir ou avoir accès à ce code. Toujours dangereux?

OriginalL'auteur | 2013-04-15