Мені потрібна була реалізація BCrypt при переміщенні чогось із PostgreSQL (у якому є pg_crypto) до SQLite (що не робить), тому я написав своє. Бачачи з цього повідомлення, що я не єдиний, хто потребує цього, я вирішив похизувати ліцензію та відпустити її. URL-адреса така:
http://zer7.com/software.php?page=cryptsharp
Реалізація Blowfish, що стоїть за нею, є портом загальнодоступного впровадження C Брюса Шнейєра та має успіх у всіх офіційних тестових векторах.
Код BCrypt я написав сам, грунтуючись на специфікації. Я також створив PHP-скрипт, який генерує випадкові паролі довжиною від 0 до 100 і солює, зашифровує їх та виводить їх у тестовий файл. Код C # відповідає цим 100% часу до цих пір. Ви можете скористатися сценарієм і перевірити це самостійно.
Бібліотека також включає код PBKDF2, який працює для будь-якого HMAC, на відміну від реалізації лише SHA-1 .Net (доданий сьогодні - я маю намір зробити SCrypt в C # незабаром і для цього потрібен PBKDF2 з HMAC-SHA256). Ви також можете створити схему на основі цього, якщо хочете.