Нет
Используется библиотека C crypt()
, основанная на DES.Это быстрый шифр. 1.
Он не идеален для хеширования паролей.Алгоритм является разумным в качестве криптосистемы, но довольно коротким по длине ключа, что является проблемой для паролей.Однако у него есть еще более фундаментальный недостаток: это слишком быстро.
Хорошие функции хеширования паролей имеют несколько странное требование шифрования: им нужны алгоритмы, которые в основном требуют многих сложных операций, а не простоГорстка операций XOR и некоторых операций поиска таблиц, как это делает DES.
Кстати, почти всегда плохая идея создать собственную систему паролей.Лучше использовать существующие пакеты на том основании, что они подлежат проверке.Требуется определенное количество предметной экспертизы, чтобы приготовить хорошую.
И, наконец, вы задали вопрос, о котором наш бесстрашный лидер здесь, на SO, написал!См .: Грязная правда о сетевых паролях.
1.Обратите внимание, что даже если бы он был реализован в Ruby, скорость все равно была бы проблемой: это принципиально быстрый алгоритм, поэтому злоумышленник мог использовать свою собственную реализацию для поиска ключа.