Лучшая реализация защиты паролей гибких рельсов [закрыто]

Мне нужно реализовать защиту паролем с различными гибкими требованиями. Требования по существу взяты изПолитика паролей Sans:

Надежные пароли имеют следующие характеристики:

Содержат как минимум три из пяти следующих классов персонажей:

Строчные буквыПрописные символычиселпунктуация«Специальные» символы (например, @ # $% ^ & * () _ + | ~ - = `{} []:"; '<> / и т. Д.)Содержать не менее пятнадцати буквенно-цифровых символов.

Существуют также требования не допускать, чтобы адрес электронной почты пользователя отображался в пароле.

В идеале я хотел бы, чтобы камень справился с этим - он был бы более широко протестирован и использован, и у нас было бы меньше шансов получить ошибки.

Если ни один драгоценный камень не покрывает это, то каков наилучший и наиболее надежный метод для удовлетворения этих требований? В идеале мы могли бы сказать, что мы не только безопасны, но и безопасны, потому что у нас есть реализация отраслевого стандарта.

Драгоценные камни, которые я нашел до сих пор:

Разработайте расширения безопасности, который имеет очень простое регулярное выражение для проверки наличия прописных, строчных и цифр

а также

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

(Мы используем Rails 3.2.17 и Ruby 1.9.3, но планируем в скором времени перейти на Rails 4 и Ruby 2, поэтому приветствуются и новые решения).

Ответы на вопрос(2)

Ваш ответ на вопрос