bestsource

일반 암호로 WordPress 해시 암호 확인

bestsource 2023. 10. 21. 10:35
반응형

일반 암호로 WordPress 해시 암호 확인

WordPress 사이트 데이터베이스 테이블 'users'에서 사용자 로그인 자격 증명을 가져올 외부 응용 프로그램을 만들고 있습니다.

WordPress는 PHP 해시를 사용합니다. 데이터베이스 테이블에서 외부 응용 프로그램의 사용자 이름과 암호를 암호로 유효성 검사할 수 없습니다.'users'해쉬드

해시 암호를 사용하여 일반 암호를 확인하려고 합니다.wp_check_password기능이 실패하고 있습니다. 이 코드로 다시 쓰는 것은 없습니다.

<?php

$password = '965521425';
$hash = '$P$9jWFhEPMfI.KPByiNO9IyUzSTG7EZK0';

require_once('/home/nhtsoft/public_html/project/wp-includes/class-phpass.php');

function wp_check_password($password, $hash) {
    global $wp_hasher;

    if ( empty($wp_hasher) ) {
        $wp_hasher = new PasswordHash(8, true);
    }
    $check = $wp_hasher->CheckPassword($password, $hash);
    return apply_filters('check_password', $check, $password, $hash);
}    
?>

이 코드는 내게 빈 페이지를 주고 있습니다.

이 WordPress 자격 증명을 외부 앱 로그인에 사용하려면 이 암호를 확인하는 방법은 무엇입니까?

잘못된 해시 값을 전달했습니다. 965521425의 해시 값은 $P$BmI5G입니다.LOOEx1iH.naNqVhnSh5sMp31 이며 아래 코드를 파일에 쓰면 됩니다.

require_once($_SERVER['DOCUMENT_ROOT']."/wp-load.php");
 $password = '965521425';
 $hash = '$P$BmI5G.LOoEx1iH.naNqVhWnSh5sMp31';
 var_dump(wp_check_password($password, $hash));

exit;

코드에 wp 라이브러리가 포함되어 있고 이름이 붙은 함수를 재정의한 것처럼 보입니다.wp_check_password함수를 전혀 호출하지 않습니다.닫기 php 태그 앞에 다음 행을 추가합니다("?).>)를 선택한 후 다시 시도합니다.

echo (wp_check_password($password, $hash) ? 'TRUE' : 'FALSE');

일부 의존 관계를 놓치는 경우를 대비하여 오류 로그를 주시하십시오.

나는 그냥 이것을 할 것입니다.<?php wp_check_password( $password, $hash, $user_id ) ?> 참조하다

                $password_hashed = '$P$Bgf2Hpr5pOVOYAvQZUhUZeLIi/QuPr1';
                $plain_password = '123456';
                if ((wp_check_password($plain_password, $password_hashed)) == 1) {
                    echo "YES, Matched";
                } else {
                    echo "No, Wrong Password";
                }

이거 먹어봐요

저는 일을 잘 합니다.

require_once( ABSPATH . WPINC . '/class-phpass.php');
$wp_hasher = new PasswordHash(8, TRUE);
$plain_password     = trim($_POST['pass_current']); //user type password
$user               = get_user_by('id', get_current_user_id());
$password_hashed    =  $user->user_pass;

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
     echo "YES, Matched";
}else{
    echo "No, Wrong Password";
}

Bhumi Shah가 쓴 것은 당신이 추가해야 할 정확한 것입니다.

require_once($_SERVER['DOCUMENT_ROOT']."/wp-load.php");

당신 코드대로.

그러나 모든 암호(숫자 또는 텍스트)에 대한 해시 값은 하나의 견고한 것이 아닙니다. 많은 것이 있을 수 있기 때문에 wp_check_password와만 비교할 수 있습니다.

언급URL : https://stackoverflow.com/questions/19677563/check-wordpress-hashed-password-with-plain-password

반응형