Frage

Kennt jemand eine gute Umsetzung von bcrypt, ich weiß, diese Frage gestellt wurde, bevor aber es wurde sehr wenig Reaktion. Ich bin ein wenig unsicher, nur eine Implementierung Kommissionierung, die in Google auftaucht und ich denke, dass ich besser dran sein kann sha256 im System.Security.Cryptography Namespace, zumindest dann ich weiß, dass es unterstützt! Was ist dir Gedanken?

War es hilfreich?

Lösung

Es klingt wie Sie BCrypt.net :

  

BCrypt.net ist eine Implementierung von   OpenBSD Blowfish-basierten Passwort   Hashing-Code, in „A beschrieben   Zukunfts Adaptable Passwort Scheme“von   Niels Provos und David Mazières. Es ist   ein direkter Anschluss von jBCrypt von Damien   Miller, und wird somit unter dem frei   gleiche BSD-Lizenz. Der Code ist   vollständig verwaltete und sollte mit jeder Arbeit   Little-Endian-Umsetzung CLI - es   wurde mit Microsoft .NET getestet   und Mono.

Andere Tipps

Sie können eine aktualisierte Implementierung von BCrypt für .NET finden Sie hier: http://bcrypt.codeplex.com/

BCrypt.Net scheint beliebtestene Bibliothek in diesem Moment zu sein

http://bcrypt.codeplex.com/

Hier ist ein Beispiel, wie es zu benutzen für Passwort-Hashing:

[TestMethod]
    public void BCryptTest()
    {
        const string password = "PASSWORD";
        const int workFactor = 13;

        var start = DateTime.UtcNow;
        var hashed = BCrypt.Net.BCrypt.HashPassword(password, workFactor);
        var end = DateTime.UtcNow;

        Console.WriteLine("hash length is {0} chars", hashed.Length);
        Console.WriteLine("Processing time is {0} with workFactor {1}", end - start, workFactor);
        Console.WriteLine("Hashed password: {0} ", hashed);
        Console.WriteLine("correct password {0}", BCrypt.Net.BCrypt.Verify("PASSWORD", hashed));
        Console.WriteLine("incorrect password {0}", BCrypt.Net.BCrypt.Verify("PASSWORd", hashed));
    }

Beispiel für die Ausgabe:

hash length is 60 chars
Processing time is 00:00:01.0020000 with workFactor 13
Hashed password: $2a$13$iBqdG7ENBABEargiyzGlTexPsmviF/qrFxUZB2zce7HKF6MoBNhEq 
correct password True
incorrect password False

ich brauchte eine BCrypt Implementierung, wenn etwas von PostgreSQL zu bewegen (was pg_crypto hat) zu SQLite (was nicht), so schrieb ich meine eigenen. Sehen Sie aus dieser Botschaft, die ich nicht der einzige bin, um diese, habe ich beschlossen, eine Lizenz auf sie zu schlagen und ihn freigeben. Die URL lautet:

http://zer7.com/software.php?page=cryptsharp

Die Blowfish Implementierung dahinter ist eine Portierung von Public Domain C Implementierung von Bruce Schneier, und es gelingt ihm auf allen offiziellen Testvektoren.

Der BCrypt Code, den ich selbst geschrieben hätte, basierend auf der Spezifikation. Ich habe auch ein PHP-Skript, das zufällige Passwörter mit einer Länge von 0 bis 100 und Salze erzeugt, Krypten sie und gibt sie an eine Testdatei. Das C # -Code entspricht dieses 100% der bisher Zeit. Sie sind willkommen, um das Skript zu verwenden, und dies selbst zu testen.

Die Bibliothek enthält auch PBKDF2-Code, der für jede HMAC arbeitet als zu .Net SHA-1-only Gegensatz Implementierung (heute hinzugefügt - ich bin die Absicht Scrypt in C # zu tun bald und das erfordert PBKDF2 mit HMAC-SHA256). Sie könnten sich ein Schema machen auch auf dieser Basis, wenn man wollte.

Falsche Antwort, siehe unten

All "Cng" (Cryptography Next Generation) nachfixiert Algorithmen in .NET Framework verwendet jetzt bcrypt. Z.B. SHA256Cng .


Tatsächlich ist die MS BCrypt (BestCrypt) bezieht sich nicht auf die auf der Blowfish-Chiffre basiert -. Danke, RobbyD, für den Kommentar
Wird die Antwort nicht gelöscht, sondern nur für den Fall, jemand anderes die gleiche Verwirrung macht.

Haben Sie versucht, dieses MS BCryptCreateHash C ++ Funktion vielleicht ?? Scheint von Windows Server 2008 und Windows Vista enthalten zu sein.

Außerdem können Sie wahrscheinlich die folgenden MS C # BCryptNative auch vielleicht CS- Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top