Czy ktoś wie o dobrej implementacji bcrypt, wiem, że to pytanie zostało zadane wcześniej, ale otrzymało bardzo mało odpowiedzi. Nie jestem pewien, czy po prostu wybrać implementację, która pojawia się w google i myślę, że może lepiej będzie, jeśli użyję sha256 w przestrzeni nazw System.Security.Cryptography, przynajmniej wtedy wiem, że jest obsługiwana! O czym myślisz?
źródło
BCrypt.Net wydaje się być obecnie najpopularniejszą biblioteką
http://bcrypt.codeplex.com/
Oto przykład, jak go używać do haszowania hasła:
Przykładowe dane wyjściowe:
źródło
Zaktualizowaną implementację BCrypt dla .Net można znaleźć tutaj: http://bcrypt.codeplex.com/
źródło
Potrzebowałem implementacji BCrypt podczas przenoszenia czegoś z PostgreSQL (który ma pg_crypto) do SQLite (który nie ma), więc napisałem własną. Widząc z tej wiadomości, nie tylko ja tego potrzebuję, zdecydowałem się nałożyć na nią licencję i zwolnić ją. Adres URL to:
http://zer7.com/software.php?page=cryptsharp
Implementacja Blowfish, która za tym stoi, jest portem implementacji C Bruce'a Schneiera w domenie publicznej i działa poprawnie na wszystkich oficjalnych wektorach testowych.
Kod BCrypt, który sam napisałem na podstawie specyfikacji. Stworzyłem również skrypt PHP, który generuje losowe hasła o długości od 0 do 100 i soli, szyfruje je i wysyła do pliku testowego. Kod C # pasuje do tych 100% do tej pory. Zapraszamy do skorzystania ze skryptu i przetestowania go samodzielnie.
Biblioteka zawiera również kod PBKDF2, który działa dla dowolnego HMAC w przeciwieństwie do implementacji tylko SHA-1 .Net (dodane dzisiaj - zamierzam wkrótce zrobić SCrypt w C # i to wymaga PBKDF2 z HMAC-SHA256). Jeśli chcesz, możesz stworzyć własny schemat na tej podstawie.
źródło
Błędna odpowiedź, zobacz poniżej
Wszystkie postfixowane algorytmy "Cng" (Cryptography Next Generation) w .Net Framework używają teraz bcrypt. Np . SHA256Cng .
Właściwie MS BCrypt (BestCrypt) nie odnosi się do tego opartego na szyfrze Blowfish - dziękuję RobbyD za komentarz.
Nie usunie odpowiedzi, na wypadek gdyby ktoś inny wprowadził takie samo zamieszanie.
źródło
Czy próbowałeś tej funkcji MS BCryptCreateHash C ++ być może? Wydaje się, że jest obecny w systemach Windows Server 2008 i Windows Vista.
Prawdopodobnie możesz również sprawdzić następującą klasę MS C # BCryptNative.cs .
źródło