Как использовать BouncyCastle в С# для одностороннего хеширования Blowfish?

Я видел массу вопросов о Blowfish и С#, и обычный ответ BouncyCastle. Тем не менее, в проекте нет документации, и я не могу найти пути вокруг структуры каталогов, чтобы даже найти модульные тесты в качестве примеров. Я имею в виду, что Blowfish известен как Asn1, Bcpg, Crypto (вообще?), EC, Ocsp, Pkcs или что? Мне не хватает знаний в области знаний о том, что означает все аббревиатуры в исходном коде.

Есть ли полезные статьи или блоги или что-то, что преуспело в использовании С# BouncyCastle API для Blowfish? Моя главная потребность - использовать Blowfish для хэширования паролей.

Ответ 1

Для хеширования паролей я бы рекомендовал перейти с bcrypt, который внутренне использует Blowfish. Преимущество использования bcrypt заключается в том, что вы можете легко настроить, насколько это дорого для генерирования хеша вывода. Это важно, так как самая большая проблема со многими популярными алгоритмами хеширования заключается в том, что они работают очень быстро, и это позволяет атаке грубой силы запускать множество перестановок, чтобы найти совпадение. Указав большой рабочий фактор, вы можете сделать его медленным для запуска (с точки зрения компьютера, но все же быстрым с точки зрения человека), и поэтому атака грубой силы становится необоснованной.

Уже доступны С# реализации.