2015-10-14 1 views
0

Мне нужно перевезти таблицу users из cakephp 1.3 в другую систему, но мы не хотим сбросить все пароли от пользователей. Как работает алгоритм, который использует cakephp 1.3 для хеширования пароля пользователя?Какой алгоритм использует торт 1.3 для хеширования пароля?

Заранее благодарен!

ответ

0

Ну ... Я думаю, это было проще, чем я думал.

аутентификации Cake вызывает пароль метод из Auth, а затем вызывает хэш из безопасности класса.

//Auth class 
function password($password) { 
    return Security::hash($password, null, true); 
} 

В безопасности, по умолчанию, он использует sha1 метод с солью и паролем каскадного; соль - случайная строка, генерируемая во время установки пирога, его значение записывается в файл core.php.

//Security class 
function hash($string, $type = null, $salt = false) { 
    $_this = Security::getInstance(); 

    if ($salt) { 
     if (is_string($salt)) { 
      $string = $salt . $string; 
     } else { 
      $string = Configure::read('Security.salt') . $string; 
     } 
    } 

    if (empty($type)) { 
     $type = $_this->hashType; 
    } 
    $type = strtolower($type); 

    if ($type == 'sha1' || $type == null) { 
     if (function_exists('sha1')) { 
      $return = sha1($string); 
      return $return; 
     } 
     $type = 'sha256'; 
    } 

    //... 
} 

Затем мне нужна эта реализация для следующей системы и флаг предыдущих пользователей от новых пользователей. При первом входе в систему пользователи получат форму для ввода нового пароля с использованием нового метода хеширования из новой системы.

 Смежные вопросы

  • Нет связанных вопросов^_^