Как получить соленый MD5 в стиле OpenSSL в Ruby? - PullRequest
0 голосов
/ 19 марта 2012

Я говорю об этом:

$ openssl passwd -1 -salt thesalt thepassword
$1$thesalt$HAWpBmvUCutuyTS4JwevI.

В PHP это будет выглядеть так:

crypt('thepassword', ('$1$'.'thesalt')); # this gives the same output as above

Я пытаюсь достичь того же формата в Ruby 1.9.Мне сказали, что Ruby's String # crypt сделает это, но это не так.Я везде искал ответ, но ничего не встречал.

Если это что-то поможет, я пытаюсь сделать это на Windows XP.Версия для Ruby: ruby ​​1.9.3p0 (2011-10-30) [i386-mingw32]

Просто чтобы скрыть комментарии, в которых говорилось, что я должен использовать что-то другое, чем MD5 или что-то еще, я бы сделал, если бы мог.Этот выбор не для меня.

Спасибо.

Редактировать: Я хочу сделать это без использования openssl, потому что это будет слишком медленно для того, что мне нужно.

Ответы [ 2 ]

0 голосов
/ 23 января 2014

штопать. Я надеялся на то же самое.

см. Также Сгенерируйте пароль openssl с помощью Ruby по причине его отсутствия в ruby.

0 голосов
/ 19 марта 2012

Если ничего не помогает, вы можете вызвать исполняемый файл openssl с помощью обратных галочек:

password = "thepassword"
salt = "thesalt"
hashed = `openssl passwd -1 -salt #{salt} #{password}`

puts hashed  # => $1$thesalt$HAWpBmvUCutuyTS4JwevI.
...