2011-01-20 3 views
4

나는 PHP 스크립트 또는 MySQL을 통해 Wordpress 블로그에 사용자를 삽입해야하며 일반 텍스트 암호가 있습니다. 나는 다음과 같이 할 수있을 것이라고 생각했다 :Wordpress MD5 암호

$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename) 
select user_email, md5(user_password), user_name from $source_db.users"; 

그러나 암호는 모두 Wordpress 암호의 모양과 다르게 보입니다. 모든 암호는 모두 $P$B

으로 시작합니다. 거기에 소금이 있다고 읽습니다. test123과 같은 암호를 사용하여 Wordpress에서 기대하는 암호화 된 암호로 변환하는 방법이 있습니까?

+0

WordPress 코드를보고 비밀번호를 암호화하는 방법을 확인하셨습니까? –

답변

5

가장 현명한 해결책은 단순히 관련 WordPress 기능 (wp_generate_password)을 사용하는 것입니다.

그러나 이것이 옵션이 아닌 경우 wp_generate_password 기능 (/wp-includes/pluggable.php에 있음)과 관련 지원 기능을 간단하게 추출 할 수 있습니다.

-1

이 기능을 사용하면 암호를 변환하는 기술 무엇을 할 것인가 :

<? 
function encrypt_for_wordpress($plain_text_password) { 
    return md5("\$P\$B" . $plain_text_password); 
} 
당신은 source_db에서 선택 PHP에서 변환 한 후 new_db에 삽입해야합니다

.

1

Wordpress는 MD5와는 다른 해시 인 phpass을 사용합니다.

+1

wp-includes/class-phpass.php 파일에서 : # # 현재 사용중인 모든 버전의 PHP에서 사용할 수있는 # 암호화 기본 형식이므로 MD5를 사용해야합니다. PHP에 우리 고유의 저수준 암호 #을 구현하면 결과적으로 성능이 훨씬 떨어지고 # 결과적으로 더 낮은 반복 횟수 및 해쉬가 더 빠릅니다 (PHP 코드가 아닌 경우) # # – Ivan

1

암호가 만드는 가장 쉬운 방법 ...

  1. 이 user_pass에 대한 MySQL의 테이블의 항목으로 어떤 쓰레기,하지만 정확한 이메일을 사용합니다.
  2. 로그인 패널에서 "비밀번호 분실"기능을 사용하여 올바른 비밀번호를 생성하십시오 (또는이 링크를 자동으로 활성화하여 사용자에게 알리십시오).

다른 계정에서 "wp_capabilities"및 "wp_user_level"을 복사하는 것을 잊지 마십시오.