2013-02-01 2 views
-1

joomal에서 새로운 사용자의 비밀번호 암호화를 어떻게 변경할 수 있습니까? 내가 수정하려고했던joomla 사용자 등록의 암호화

getSalt($encryption = 'md5-hex', $seed = '', $plaintext = '') 

getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false) 
library.joomla.user.helper의

하지만이 두 가지 기능을 로그에 수 없습니다 이전 사용자를 수정하여

!

+1

2 가지 다른 암호화를 사용하고 싶다면 현재 사용하기 위해 필요한 암호를 식별 할 수있는 몇 가지 추가 매개 변수를 설정해야합니다. – Aivar

+0

예 실제로 많은 사용자가있는 활성 joomla 웹 사이트, 그냥 md5 암호를 사용하는 다른 PHP 기반 웹 사이트이므로 MD5 암호화 알고리즘을 사용하여 joomla 암호를 저장하는 방법을 찾아야합니다. –

답변

1

난 그냥 줌라는 기술적으로 이미의 기능을 가지고 있지만, 줌라의 소스 코드를 통해 보면서 : 더 나은 [아니라 많은으로] 암호 저장을위한 해시 알고리즘의 다양한 선택

  1. 합니다.
  2. 알고리즘 변경의 경우 알고리즘 이름을 해시와 함께 저장하십시오.

코드에서 실제로 이러한 것들 중 어느 것도 사용되지 않습니다.

이 의미 : 당신이 두 함수 정의에 $encryption = 'md5-hex'을 수정하여를 설치하기 전에

  1. 당신은 오직이 을 변경할 수 있습니다.
  2. 다른 시간에 암호를 변경하면 관리자 암호를 비롯한 모든 암호가 무효화됩니다.

증거 : 당신은 거기에 '암호화'유형을 지정 getCryptedPassword() 단일 통화가 아니기 때문에 함수 정의에서 기본은 항상 사용된다는 것을 분명히 알 수 있습니다

$ grep -r getCryptedPassword ./* 
./components/com_users/models/reset.php:    $crypted  = JUserHelper::getCryptedPassword($data['password1'], $salt); 
./components/com_users/models/reset.php:    $testcrypt = JUserHelper::getCryptedPassword($data['token'], $salt); 
./installation/models/configuration.php:    $crypt = JUserHelper::getCryptedPassword($options->admin_password, $salt); 
./libraries/joomla/user/user.php:      $crypt = JUserHelper::getCryptedPassword($array['password'], $salt); 
./libraries/joomla/user/user.php:        $crypt = JUserHelper::getCryptedPassword($array['password'], $salt); 
./libraries/joomla/user/helper.php:  public static function getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false) 
./plugins/authentication/joomla/joomla.php:      $testcrypt = JUserHelper::getCryptedPassword($credentials['password'], $salt); 

.

그래서 신선한에있는 파일을 압축 해제하고 실제로 당신이 함수 정의를 변경할 수 있습니다 설치 스크립트를 실행 사이에 설치 : 최선의 선택 [IMO]로 해싱 알고리즘을 변경됩니다

getSalt($encryption = 'crypt-blowfish', $seed = '', $plaintext = '') 
getCryptedPassword($plaintext, $salt = '', $encryption = 'crypt-blowfish', $show_encrypt = true) 

등 암호와 함께 해시 유형을 저장하면 모든 이전 암호를 무효화하지 않고 나중에 알고리즘을 변경할 수 있습니다.

현재 알고리즘을 지정하기 위해 아래와 같은 쿼리를 처음 실행하면 알 고를 변경할 수 있습니다.

UPDATE TABLE users 
SET password = CONCAT('{MD5}', password) 
WHERE password NOT LIKE '{%' 

물론 적절한 테이블과 필드 이름을 사용해야합니다.

+0

도움을 주셔서 감사합니다. 말씀 드렸듯이 나는 결과를 발표 할 것입니다. 다시 한번 감사드립니다. –