comparison piecrust/admin/bcryptfallback.py @ 1176:28c388fc18b2

cm: Upgrade flask-login and flask-bcrypt.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 21 May 2020 22:04:35 -0700
parents 0d699f04968c
children
comparison
equal deleted inserted replaced
1175:d0f86d9a9d40 1176:28c388fc18b2
19 19
20 20
21 try: 21 try:
22 from flask_bcrypt import Bcrypt 22 from flask_bcrypt import Bcrypt
23 except ImportError: 23 except ImportError:
24 print_warning = True 24 try:
25 from flask.ext.bcrypt import Bcrypt
26 except ImportError:
27 print_warning = True
25 28
26 def generate_password_hash(password): 29 def generate_password_hash(password):
27 return hashlib.sha512(password.encode('utf8')).hexdigest() 30 return hashlib.sha512(password.encode('utf8')).hexdigest()
28 31
29 def check_password_hash(reference, check): 32 def check_password_hash(reference, check):
30 check_hash = hashlib.sha512(check.encode('utf8')).hexdigest() 33 check_hash = hashlib.sha512(check.encode('utf8')).hexdigest()
31 return check_hash == reference 34 return check_hash == reference
32 35
33 class SHA512Fallback(object): 36 class SHA512Fallback(object):
34 is_fallback_bcrypt = True 37 is_fallback_bcrypt = True
35 38
36 def __init__(self, app=None): 39 def __init__(self, app=None):
37 self.generate_password_hash = generate_password_hash 40 self.generate_password_hash = generate_password_hash
38 self.check_password_hash = check_password_hash 41 self.check_password_hash = check_password_hash
39 42
40 def init_app(self, app): 43 def init_app(self, app):
41 app.bcrypt = self 44 app.bcrypt = self
42 45
43 Bcrypt = SHA512Fallback 46 Bcrypt = SHA512Fallback
44 47
45 48
46 if print_warning: 49 if print_warning:
47 logging.warning("Bcrypt not available... falling back to SHA512.") 50 logging.warning("Bcrypt not available... falling back to SHA512.")
48 logging.warning("Run `pip install Flask-Bcrypt` for more secure " 51 logging.warning("Run `pip install Flask-Bcrypt` for more secure "