Tôi cần triển khai BCrypt khi di chuyển thứ gì đó từ PostgreSQL (có pg_crypto) sang SQLite (không có), vì vậy tôi đã viết của riêng mình. Nhìn thấy từ thông báo này, tôi không phải là người duy nhất cần điều này, tôi đã quyết định lấy giấy phép cho nó và phát hành nó. URL là:
http://zer7.com/software.php?page=cryptsharp
Việc triển khai Blowfish đằng sau nó là một cổng triển khai miền công cộng C của Bruce Schneier và thành công trên tất cả các vectơ thử nghiệm chính thức.
Mã BCrypt tôi tự viết dựa trên thông số kỹ thuật. Tôi cũng đã tạo một tập lệnh PHP tạo mật khẩu ngẫu nhiên có độ dài từ 0 đến 100 và các muối, mã hóa chúng và xuất chúng ra một tệp thử nghiệm. Cho đến nay, mã C # khớp với những điều này 100%. Bạn có thể sử dụng script và tự kiểm tra điều này.
Thư viện cũng bao gồm mã PBKDF2 hoạt động cho bất kỳ HMAC nào trái ngược với triển khai chỉ SHA-1 của .Net (được thêm vào hôm nay - tôi dự định sẽ sớm thực hiện SCrypt trong C # và điều đó yêu cầu PBKDF2 với HMAC-SHA256). Bạn cũng có thể tạo cho mình một kế hoạch dựa trên điều này, nếu bạn muốn.