2015-01-10 2 views
0

CakePHP как генерировать свой пароль внешнегоCakePHP как генерировать свой пароль внешнего

Я привык использовать PHP, и у меня было приложение, которое нужно интегрировать с CakePHP.

В основном я пытаюсь создать форму входа, которая может использовать тот же метод хеширования & CakePHP.

Я смотрю на несколько файлов, таких как SecurityComponent и AuthComponent торта PHP и это то, что я получить

$string = "demopassw0rd"; 
$type = null; 
$salt = "mySALT"; 

$string = $salt . "demo1234"; 

$stringnew = sha1($string); 
echo md5($stringnew); 

echo " SPACES  "; 

$stringnew2 = bin2hex(mhash(MHASH_SHA256, $string)); 
echo md5($stringnew2); 


//Below is the real code. 

       if ($salt) { 
         if (is_string($salt)) { 
           $string = $salt . $string; 
         } else { 
           $string = $salt . $string; 
         } 
       } 

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

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

       if ($type == 'sha256' && function_exists('mhash')) { 
         return bin2hex(mhash(MHASH_SHA256, $string)); 
       } 

Используя приведенный выше метод, который был извлечен из торта PHP, я не получить тот же хэш пароля, который был хранится в mysql.

Я пытаюсь создать хэш-метод, поэтому я могу создать другую форму входа, которая не является фреймворком cakephp, и может использовать ту же таблицу входа в систему, что и мое программное обеспечение для торта php, которое находится на одном сервере.

* The level of CakePHP security. 
*/ 
     Configure::write('Security.level', 'medium'); 

/** 
* A random string used in security hashing methods. 
*/ 
     Configure::write('Security.salt', 'mySALT'); 

/** 
* A random numeric string (digits only) used to encrypt/decrypt strings. 
*/ 
     Configure::write('Security.cipherSeed', '65986349865349087509054352724'); 

Как сделать использование конфигурации выше, чтобы сделать свой собственный метод хеширования, который может хэширования моей входной строки в то же самое, что я хранится в MySQL с помощью CakePHP

Я интерпретировал метод торта PHP хэширования для конфигурация выше

Во-первых

$salt . $string to form a $string value 

then sha1($string) and then md5($string) 

or bin2hex with the sha264 ($string) and then md5(string) 

но как я пытался и не в состоянии получить тот же хэш, как торт PHP

+1

Зачем делать вашу жизнь тяжело? Используйте существующий класс. Классы переносимы и могут быть пригодными для использования и снаружи: 'require ....; $ object = new ...; '. Не нужно взламывать вместе. Это может пойти не так. – mark

+0

@mark спасибо за идею. но я не уверен, как использовать класс :), но я буду исследовать его –

ответ

1

Другой вариант может заключаться в том, чтобы вызвать веб-сервис в своем приложении для торта .. с учетом этого вы можете называть его с любого языка или приложения ... с помощью этого вы используете механику пирога, как отмечают, «используйте существующий класс «но в другой форме ...

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