php - 如何使用 Wordpress salt 在 Wordpress 中加密密码?

标签 php sql wordpress passwords salt

我想使用标准的 Wordpress salt 加密发送到数据库中的密码,就像 Wordpress 在您创建新用户时所做的那样。我知道我可以在 wp-config.php 中找到我的盐。所以我不需要生成盐;我只需要加密密码。

所以当我创建 mypassword0 时,发送到数据库的是我的 Wordpress salt 加密的文本字符串。

这是我的原始代码。 (感谢Yadav Chetan的帮助!)现在我只需要添加盐加密代码即可。

  <?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 }?>

更新:

RRikesh建议我将 mysql_* 更改为 WPDB 代码。所以我尝试将其更改为 wpdb,并且我还需要将其与其他代码集成。那么你能帮我修复这个更新后的代码吗?

<?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 }?>


更新 2

我无法使 WPDB 方法起作用。但是,使用我的 otd 方法我能够获得密码。这是工作代码:

    <?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{
    ?>

也许我应该提出一个关于 WPDB 的新问题,因为这个问题是关于哈希密码的,它已经解决了。

最佳答案

使用wp_hash_password()对您的密码进行哈希处理。

Don't use mysql_* functions as they were deprecated in PHP 5.5.0, and were removed in PHP 7.0.0.

使用 WPDB Class相反。

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

关于php - 如何使用 Wordpress salt 在 Wordpress 中加密密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16012314/

相关文章:

php - 帮助我改进我的持续部署工作流程

php - FCM 链接在桌面通知中不起作用

mysql - SQL (MySQL) - 如何在内连接中使用嵌套查询中指定的名称

php - wordpress静态页面分页

php - 为什么当我使用双引号时 PHP 中的 printf() 不工作?

php - 使用 php 创建 .xls 文件

sql - 在两个日期之间添加行 Presto

java - 我可以在 Java 中使用 resultset.getBoolean 在 SQL 中获取 Tinyint

javascript - PHP 函数和 WordPress

php - WordPress 将 div 包装在 echo shortcode php 中