util.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. # -*- encoding: utf-8 -*-
  2. """
  3. Copyright (c) 2019 - present AppSeed.us
  4. """
  5. import os
  6. import hashlib
  7. import binascii
  8. # Inspiration -> https://www.vitoshacademy.com/hashing-passwords-in-python/
  9. def hash_pass(password):
  10. """Hash a password for storing."""
  11. salt = hashlib.sha256(os.urandom(60)).hexdigest().encode('ascii')
  12. pwdhash = hashlib.pbkdf2_hmac('sha512', password.encode('utf-8'),
  13. salt, 100000)
  14. pwdhash = binascii.hexlify(pwdhash)
  15. return (salt + pwdhash) # return bytes
  16. def verify_pass(provided_password, stored_password):
  17. """Verify a stored password against one provided by user"""
  18. stored_password = stored_password.decode('ascii')
  19. salt = stored_password[:64]
  20. stored_password = stored_password[64:]
  21. pwdhash = hashlib.pbkdf2_hmac('sha512',
  22. provided_password.encode('utf-8'),
  23. salt.encode('ascii'),
  24. 100000)
  25. pwdhash = binascii.hexlify(pwdhash).decode('ascii')
  26. return pwdhash == stored_password