Как использовать BouncyCastle в С# для одностороннего хеширования Blowfish?
Я видел массу вопросов о Blowfish и С#, и обычный ответ BouncyCastle. Тем не менее, в проекте нет документации, и я не могу найти пути вокруг структуры каталогов, чтобы даже найти модульные тесты в качестве примеров. Я имею в виду, что Blowfish известен как Asn1, Bcpg, Crypto (вообще?), EC, Ocsp, Pkcs или что? Мне не хватает знаний в области знаний о том, что означает все аббревиатуры в исходном коде.
Есть ли полезные статьи или блоги или что-то, что преуспело в использовании С# BouncyCastle API для Blowfish? Моя главная потребность - использовать Blowfish для хэширования паролей.
Ответы
Ответ 1
Для хеширования паролей я бы рекомендовал перейти с bcrypt, который внутренне использует Blowfish. Преимущество использования bcrypt заключается в том, что вы можете легко настроить, насколько это дорого для генерирования хеша вывода. Это важно, так как самая большая проблема со многими популярными алгоритмами хеширования заключается в том, что они работают очень быстро, и это позволяет атаке грубой силы запускать множество перестановок, чтобы найти совпадение. Указав большой рабочий фактор, вы можете сделать его медленным для запуска (с точки зрения компьютера, но все же быстрым с точки зрения человека), и поэтому атака грубой силы становится необоснованной.
Уже доступны С# реализации.
Ответ 2
Также вы должны проверить: Почему BCrypt.net GenerateSalt (31) сразу возвращается?
И реализация кода: bcrypt.codeplex.com