Генерация пароля CakePHP в Rails - PullRequest
2 голосов
/ 13 ноября 2011

Я пытаюсь написать эквивалент

$password = Security::hash('text pw', null, true)

В CakePHP, который создает хэш безопасности, который будет проверять «text pw», когда пользователь входит в систему. Я пытался до сих пор в Rails:

password = Digest::MD5.hexdigest("text pw")

Но это не подтверждает подлинность, когда я пытаюсь войти в приложение CakePHP.

Ответы [ 3 ]

2 голосов
/ 13 ноября 2011

Мне нравится предложение выше, но, похоже, вы хотите сделать это в Rails.Это рубиновый класс, так что вам не нужны никакие плагины и т. Д.

  require 'digest/sha1'
  pass_hash = Digest::SHA1.hexdigest("#{self.password}#{salt}")

Я не уверен на 100%, как это делает команда cake, но обращение к документации или коду cakePhp должно помочь вам понятьтам.

Как вы пытаетесь войти в приложение cakePhp через рельсы?Я предполагаю, что вы пытаетесь переместить базу данных cakePhp в Rails?Или, может быть, порт аутентификации CakePhp на рельсы?

1 голос
/ 17 января 2012

@ Джефф Ансель был очень близок.Вот как это делает Cake и что я в итоге использовал:

require 'digest/sha1'
hashed_pw = Digest::SHA1.hexdigest(cake_security_salt + text_password)

Надеюсь, что это кому-нибудь поможет.

0 голосов
/ 13 ноября 2011

Класс безопасности по умолчанию использует схему SHA1, а cakephp также использует соль, которую вы указали в файле config.php для создания еще более уникального хэша. Вы можете скопировать его в ruby, просто найдите библиотеку, которая выполняет SHA1, и передайте ей ту же соль, что и в вашем приложении cakephp. Или же вы можете переключить cakephp на использование MD5 для хеширования пароля с помощью:

Security::setHash('md5'); // or sha1 or sha256.

, а также см. Здесь из книги тортов - http://book.cakephp.org/view/1254/Change-Hash-Function

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...