2012-01-28 3 views
1

примечание: я не ищу обходного пути, я ищу простое рубиновое решение!Как преобразовать функцию php crypt (SHA512) в ruby?

Этот вопрос похож на этот question, но это не ответ, его просто обходной путь к командной команде.

Я хочу сгенерировать зашифрованную строку sha512, которая совместима с форматом в debian/etc/shadow.

следующее создать правильную строку с php:

$salt = 'fGn9LR75'; 
$hash = crypt('test', '$6$'.$salt); 
// hash is: 
// $6$fGn9LR75$YpI/vJHjEhvrYp5/eUSRinpiXdMthCxFWSEo0ktFNUaRBsA7pCWYzzmQptmnfyHno9YEJFNHYuESj3nAQmSzc1 

, насколько я знаю, это нормальная, соленая в кодировке Base64. спецификация метода генерации является ша here

+2

Похоже, ваша сменная клавиша сломана. –

+3

нет, я просто предпочитаю писать в нижнем регистре. – c33s

ответ

2
irb(main):001:0> salt = 'fGn9LR75'; 
irb(main):002:0* hash = 'test'.crypt('$6$' + salt); 
irb(main):003:0* hash 
=> "$6$fGn9LR75$YpI/vJHjEhvrYp5/eUSRinpiXdMthCxFWSEo0ktFNUaRBsA7pCWYzzmQptmnfyHno9YEJFNHYuESj3nAQmSzc1" 

crypt() алгоритм SHA256/512 не просто кодировке base64 хеш. Это преднамеренно сумасшедший процесс, который включает в себя несколько хешей, работающих параллельно.

+0

работает как шарм, также в марионетке. Большое спасибо – c33s

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