Аутентификация пароля, зашифрованного на PHP с использованием Blowfish с Ruby

Есть приложение, написанное на PHP, которое я конвертирую в Ruby. Когда Для шифрования паролей приложение PHP использует следующий код:

if($method == 2 && CRYPT_BLOWFISH) return crypt($pass, '$2a$07$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxx$');

Я предполагаю, что здесь используется реализация Blowfish. Здесь все символы x - это символы a-zA-Z0-9.

Реализация Blowfish в Ruby использует следующий синтаксис (взято из http://crypt.rubyforge.org/blowfish.html ):

blowfish = Crypt::Blowfish.new("A key up to 56 bytes long")
plainBlock = "ABCD1234"
encryptedBlock = blowfish.encrypt_block(plainBlock)

У меня нет строки длиной 56 или меньше байтов, и неясно, что это должно быть из PHP Итак, как мне написать функцию Ruby, которая будет шифровать пароли, чтобы давать тот же результат, что и PHP?

6
задан Luke Saunders 16 December 2011 в 16:14
поделиться