Notes/src/my_scrypt.py

31 lines
731 B
Python
Raw Normal View History

2017-09-09 13:53:58 -04:00
import scrypt # pip install scrypt
2017-10-09 19:48:10 -04:00
import sql
2017-09-09 13:53:58 -04:00
2017-10-09 19:48:10 -04:00
def get_verification_hash(password):
salt = sql.get_option('password_verification_salt')
return get_scrypt_hash(password, salt)
def get_password_derived_key(password):
salt = sql.get_option('password_derived_key_salt')
2017-09-09 13:53:58 -04:00
2017-10-09 19:48:10 -04:00
return get_scrypt_hash(password, salt)
2017-09-09 13:53:58 -04:00
2017-10-09 19:48:10 -04:00
def get_scrypt_hash(password, salt):
2017-09-12 22:23:57 -04:00
# scrypt doesn't like unicode strings
password = password.encode('ascii', 'ignore')
salt = salt.encode('ascii', 'ignore')
2017-09-09 13:53:58 -04:00
hashed = scrypt.hash(password=password,
2017-10-09 19:48:10 -04:00
salt=salt,
N=16384,
r=8,
p=1,
buflen=32)
2017-09-09 13:53:58 -04:00
2017-10-09 19:48:10 -04:00
return hashed