WordPress에서는 어떤 유형의 해시를 사용합니까?


답변:


146

WordPress 암호 는 WordPress 및 Drupal과 같은 컨텐츠 관리 시스템에서 사용되는 Portable PHP 암호 해싱 프레임 워크를 구현합니다 .

그들은 이전 버전에서 MD5를 사용했지만 슬프게도 더 이상은 아닙니다. http://scriptserver.mainframe8.com/wordpress_password_hasher.php 에서이 암호화 체계를 사용하여 해시를 생성 할 수 있습니다 .


12
MD5는 더 이상 허용되지 않습니다. > PHP 5.5.0이있는 경우 새 password_hash기능을 사용하십시오 . > PHP 5.3.7 만있는 경우 여기에 호환성 라이브러리를 사용하십시오. github.com/ircmaxell/password_compat
Andrew Brown

14
이것이 도움이 될지 모르겠지만 WP는 암호를 처음 사용할 때 여전히 MD5를 그대로 사용하여 "소금"합니다. 따라서 DB에 액세스 할 수있는 경우 MyPHPAdmin을 사용하여 PW를 "MyPass"로 변경하고 "기능"드롭 다운에서 MD5를 선택하면 곧바로 MD5로 저장됩니다. Wordpress에 로그인하면 $ P $ B __ /가 추가 된 "salted"버전으로 변경됩니다.
BillyNair

기본적으로 사용자가 PW에 로그인하지 않은 경우 여전히 MD5 형식으로되어 있으며 동일한 PW를 가진 다른 사람과 동일하게 보입니다. 동일한 EXW PW로도 로그인하면 개인 "소금"으로 변경되므로 귀하와 친구가 동일한 PW로 동시에 로그인하면 "소금 MD5"가 다르게 보일 것입니다. 즉, WP가 기본값과 동일하더라도 PW가 소금에 절인 버전으로 변경되므로 PW가 기본값에서 변경되었는지 테스트하기 위해 DB를 쿼리하는 방법은 없습니다.
BillyNair

@AndrewBrown, MD5를 더 이상 사용할 수 없다는 데 동의하지 않습니다. CMS에서 패스를 생성하는 것이 사실 일지 모르지만 DB 레벨에서 시도하십시오. phpMyAdmin에 로그인하고 wp_users 테이블의 비밀번호 필드에 대해 MD5 해시를 생성하고 작동합니다 ... Google : WordPress 관리자 비밀번호를 수동으로 재설정합니다 . 또한 johnMetta의 답변을 참조하십시오.
wpcoder

3
@wpcoder MD5는 100 % 암호로 안전하지 않으며 해시 된 암호 저장 방법으로 사용할 수없는 질문이 없습니다.
앤드류 브라운

21
$hash_type$salt$password

해시가 소금을 사용하지 않으면 그것에 대한 $징조 가 없습니다 . 귀하의 경우 실제 해시는 2 일 이후입니다.$

그 이유는 다른 소금을 가진 많은 유형의 해시를 가질 수 있으며 다른 문자열과 일치하는 방법을 알고있는 함수에 해당 문자열을 공급합니다.


고맙지 만 md5 해시가 16 진수이어야한다고 생각했습니다 .b1946ac92492d2347c6235b4d2611184 왜이 해시에 문자 AZ 및가 있습니까? 그 안에? md5 해시입니까?

사용되는 해시 유형일 수 있습니다. 해시는 고정 된 크기의 문자열입니다. 원하는 것을 포함 할 수 있습니다.
Ólafur Waage

@ 아만다 쿠마르. 이 파티에 늦었지만 MD5는 128 비트 (16 바이트) 값을 생성합니다. 이 값은 16 진수 문자열, Base64 문자열 또는 파일의 원시 데이터와 같은 다양한 방법으로 저장 및 표현 될 수 있습니다. 일반적으로 MD5 값은 16 진수로 표시되지만 WordPress는 대신 Base64를 사용합니다. 16 진수 값은 Base64에서 sZRqySSS0jR8YjW00mERhA ==이며 16 진수보다 25 % 적은 문자를 사용하여 동일한 데이터를 나타냅니다.
jordanbtucker

14

MD5는 데이터베이스를 수동으로 변경하는 데 도움이되었습니다. 참조 : 비밀번호 재설정


1
이 일반 MD5 해시하지 아니, 일반 MD5 해시는 다음과 같습니다 : 나는 그것의 MD5 기반으로 들었지만, 캔 누군가가 말해주십시오 b1946ac92492d2347c6235b4d2611184이 사용하는 어떤 옵션 passwordspro에서 seelect에 해시의 유형

24
MD5는 테이블에 수동으로 입력하면 작동하지만 처음 로그인 할 때 WP는 자체 해시를 사용하여 다시 작성하므로 암호 재설정에 적합하지만 그 이상은 아닙니다.
GiladG 2016 년

1
@FranciscoCorralesMorales-DB에 그대로 PassWord를 입력 한 다음 드롭 다운에서 MD5를 선택하면 여전히 작동합니다. 또한 상자에 MD5 암호화 문자열을 복사 / 붙여 넣을 수 있으며 아무 것도 선택하지 않아도 작동합니다. 따라서 PW가 "qwertyuiop"인 경우 ND5는 "6eea9b7ef19179a06954edd0f6c05ceb"입니다. "qwertyuiop"비밀번호를 사용하는 경우 " MD5 "또는 긴 해시를 사용하고 아무것도 선택하지 않고 DB를 저장 한 다음"qwertyuiop "을 사용하여 WordPress에 로그인하면 작동합니다.)
BillyNair

12

Wordpress DB에서 암호를 수동으로 재설정하려면 간단한 MD5 해시이면 충분합니다. (아래 이유 참조)

이전 버전과의 호환성을 유지하기 위해 데이터베이스에 저장된 MD5 해시 암호는 여전히 유효합니다. 사용자가 이러한 암호로 로그인하면 WordPress는 MD5가 사용 된 것을 감지하고보다 안전한 방법을 사용하여 암호를 다시 해시하고 새 해시를 데이터베이스에 저장합니다.

출처 : http://eamann.com/tech/wordpress-password-hashing/

업데이트 : 이것은 2014 년에 게시 된 답변입니다. 더 이상 WP와 함께 작동하지 않으므로 최신 버전의 WP에서 계속 작동하는지 모르겠습니다.


MD5 해시 저장은 더 이상 작동하지 않습니다. 출처 : 방금 시도했습니다.
Jay Jee

방금 시도하고 로그인했습니다. MD5가 wp 해시로 자동 변환되었습니다. Wp 버전 5.1
Miro

10

Wordpress에서 사용하는 해시의 종류를 찾는데도 같은 문제가있었습니다.

그것은이다 해시 암호 WP .

이미 해시 된 비밀번호를 일반 텍스트 문자열과 비교하십시오.

<?php
$wp_hasher = new PasswordHash(8, TRUE);

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

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

다음 링크를 참조하십시오 : https://codex.wordpress.org/Function_Reference/wp_hash_password

https://developer.wordpress.org/reference/functions/wp_hash_password

PasswordHash를 사용하여 암호에 솔트를 추가하고 8 패스의 MD5로 해시합니다.


9

사용되는 PHP 버전에 따라 다릅니다. wp-includes/class-phpass.php모든 답변을 포함합니다.


7

이를 수행하는 가장 좋은 방법은 WordPress 클래스를 사용하여 사용자를 인증하는 것입니다. 내 해결책은 다음과 같습니다.

1. 다음 WordPress PHP 파일을 포함 시키십시오 :

include_once(dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . "wp-includes" . DIRECTORY_SEPARATOR . "class-phpass.php");

2. PasswordHash클래스 의 객체를 만듭니다 :

$wp_hasher = new PasswordHash(8, true);

3. CheckPassword사용자를 인증하기위한 함수 호출 :

$check = $wp_hasher->CheckPassword($password, $row['user_pass']);

4. $check변수 확인 :

if($check) {
   echo "password is correct";
} else {
   echo "password is incorrect";
}

참고 : $password일반 텍스트로 된 해시되지 않은 암호 인 반면 $row['user_pass']데이터베이스에서 가져 오는 데 필요한 해시 된 암호입니다.


2
답은 명확하지 않지만 $ password는 일반 텍스트의 해시되지 않은 패스이지만 $ row [ 'user_pass']는 db에서 직접 가져와야하는 해시 비밀번호입니다.
Advait S

5

phpMyAdmin을 시작하고 워드 프레스 인스턴스에서 wp_users에 액세스하십시오. MD5와 일치하도록 레코드를 편집하고 user_pass 기능을 선택하십시오. VALUE에 새 비밀번호가 될 문자열을 작성하십시오. 이동을 클릭하십시오. 워드 프레스 웹 사이트로 이동하여 새 비밀번호를 입력하십시오. phpMyAdmin으로 돌아가서 WP가 해시를 $ P $ B와 같은 것으로 바꾸 었다는 것을 알 수 있습니다 ... 즐기십시오!


2019 년 2017 WP 설치 확인!
Gerard ONeill

2

Wordpress는 MD5 암호 해싱을 사용 합니다 . 일반 텍스트 비밀번호의 해시를 작성합니다. 전역 $ wp_hasher가 설정되어 있지 않으면 기본 구현은 PasswordHash를 사용하여 암호에 salt를 추가하고 8 패스의 MD5로 해시합니다. MD5는 모든 플랫폼에서 지원되므로 기본적으로 사용됩니다. $ portable_hashes 생성자 인수 또는 속성과 함께 MD5 대신 Blowfish 또는 확장 DES (사용 가능한 경우)를 사용하도록 PasswordHash를 구성 할 수 있습니다.


2

include_once ( '../../../ wp-config.php');

글로벌 $ wpdb;

$ password = wp_hash_password ( "귀하의 비밀번호");


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.