En este momento estoy desarrollando mi propio CMS para monitorear diferentes tipos de servidores de juegos. Así que como parte de eso realmente necesito un sistema de inicio de sesión. Así que me gustaría que me respondieras dos preguntas. En primer lugar mi método:
password = request.form.get("password)
dbdata = db_user.query.filter(db_user.email == email).first()
shapw = haslib.sha512(b""+password).hexdigest()
if dbdata:
salt = dbdata.salt
encrypted_password = bcrypt.hashpw(shapw.encode("utf-8"), salt.encode("utf-8"))
else:
salt = bcrypt.gensalt()
encrypted_password = bcrypt.hashpw(shapw.encode("utf-8"), salt.encode("utf-8"))
if dbdata and dbtata.password == encrypted_password:
''''Set Sessioncookie with random Key
store this key in DB and redirect to home page''''
Ahora mis preguntas:
-
¿Este método de hash está bien en todos? O mejor, utilice el método de sal automático bcrypt
-
¿Este método es seguro para ataques de tiempo pasado?
Editar
Después de leer algunas cosas más como la OWASP Password Storage Sheet cambié mi método de hashing. Pero aún queda una pregunta:
¿Crees que este método es bueno para evitar ataques de contraseña basados en el tiempo?