ich benutze gevent greenlet so bin ich sehr eingeschränkt durch alles im zusammenhang mit CPU-berechnung. Und ich muss eine starke Hashing-Methode für den Passwortspeicher verwenden.gevent und stark hashing passwort methode
Wenn ich nicht in einem GEVENT Zusammenhang habe ich die Gewohnheit bcrypt verwenden, aber ich habe diesen kleinen Test:
import bcrypt
import time
password = b"toto"
start_hash = time.clock()
hashed = bcrypt.hashpw(password, bcrypt.gensalt())
print 'time hash bcrypt %s' % (time.clock() - start_hash)
start_compare = time.clock()
assert bcrypt.hashpw(password, hashed) == hashed
elapsed = (time.clock() - start_compare)
print 'time check bcrypt %s' % elapsed
was zur Folge hat:
time hash bcrypt 0.291887
time check bcrypt 0.293343
nehmen diese viel zu viel Zeit zu verwenden, wie es in einem Greenlet ist.
Als comparaison, die gleiche Art von Berechnung des alten MD5-Hash mit:
time hash md5 4.1e-05
time check hash md5 1.1e-05
Welche Lösung habe ich?
bcrypt muss langsam sein, weil Passwort-Hashes langsam sein müssen, um Hacking zu vermeiden – Daniel
@Daniel: Ich verstehe das. Meine Frage ist mehr darüber, wie kann ich diese Art von Hashing in einem Gevent-Kontext verwenden? – jobou