Match application password with wordpress password

0 Votes
    784 Views

I need to match my application password with wordpress password. I add the wp_check_password, wp_hash_password into my own code, but it does not happen anything, my task now is user will register account in wordpress, this is settle because can use plugin while the problem now is my application password sent to wp_user is MD5, and also cannot use the wordpress password to login into application. Hope someone help me, thank you.
Below is my code:

class DbOperations{

private $con; 

function __construct(){

    require_once dirname(__FILE__).'/DbConnect.php';

    $db = new DbConnect();

    $this->con = $db->connect();

}
function wp_hash_password($password) {
global $wp_hasher;

if ( empty($wp_hasher) ) {
    require_once( ABSPATH . WPINC . '/class-phpass.php');
    // By default, use the portable hash from phpass
    $wp_hasher = new PasswordHash(8, true);
}

return $wp_hasher->HashPassword( trim( $password ) );
}
 function wp_check_password($password, $hash, $user_id = '') {
global $wp_hasher;

// If the hash is still md5...
if ( strlen($hash) <= 32 ) {
    $check = hash_equals( $hash, md5( $password ) );
    if ( $check && $user_id ) {
        // Rehash using new hash.
        wp_set_password($password, $user_id);
        $hash = wp_hash_password($password);
    }

    /**
     * Filters whether the plaintext password matches the encrypted password.
     *
     * @since 2.5.0
     *
     * @param bool       $check    Whether the passwords match.
     * @param string     $password The plaintext password.
     * @param string     $hash     The hashed password.
     * @param string|int $user_id  User ID. Can be empty.
     */
    return apply_filters( 'check_password', $check, $password, $hash, $user_id );
}

// If the stored hash is longer than an MD5, presume the
// new style phpass portable hash.
if ( empty($wp_hasher) ) {
    require_once( ABSPATH . WPINC . '/class-phpass.php');
    // By default, use the portable hash from phpass
    $wp_hasher = new PasswordHash(8, true);
}

$check = $wp_hasher->CheckPassword($password, $hash);

/** This filter is documented in wp-includes/pluggable.php */
return apply_filters( 'check_password', $check, $password, $hash, $user_id );
}

/*CRUD -> C -> CREATE */

public function createUser($username, $pass, $email){
    if($this->isUserExist($username,$email)){
        return 0; 
    }else{
        $password = wp_hash_password($pass);
        $stmt = $this->con->prepare("INSERT INTO `users` (`id`, `username`, `password`, `email`) VALUES (NULL, ?, ?, ?);");
        $stmt->bind_param("sss",$username,$password,$email);

        if($stmt->execute()){
            return 1; 
        }else{
            return 2; 
        }
    }
}

public function userLogin($username, $pass){
    $password = wp_check_password($pass);
    $stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? AND password = ?");
    $stmt->bind_param("ss",$username,$password);
    $stmt->execute();
    $stmt->store_result(); 
    return $stmt->num_rows > 0; 
}

public function getUserByUsername($username){
    $stmt = $this->con->prepare("SELECT * FROM users WHERE username = ?");
    $stmt->bind_param("s",$username);
    $stmt->execute();
    return $stmt->get_result()->fetch_assoc();
}


private function isUserExist($username, $email){
    $stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
    $stmt->bind_param("ss", $username, $email);
    $stmt->execute(); 
    $stmt->store_result(); 
    return $stmt->num_rows > 0; 
}

}

Please signup or login to answer this question.