2017-09-09 13:53:58 -04:00
|
|
|
import scrypt # pip install scrypt
|
2017-09-12 21:43:24 -04:00
|
|
|
import sql
|
2017-09-09 13:53:58 -04:00
|
|
|
|
|
|
|
def getVerificationHash(password):
|
2017-09-16 23:21:46 -04:00
|
|
|
salt = sql.getOption('password_verification_salt')
|
2017-09-09 13:53:58 -04:00
|
|
|
|
|
|
|
return getScryptHash(password, salt)
|
|
|
|
|
2017-09-16 23:21:46 -04:00
|
|
|
def getPasswordDerivedKey(password):
|
|
|
|
salt = sql.getOption('password_derived_key_salt')
|
2017-09-09 13:53:58 -04:00
|
|
|
|
|
|
|
return getScryptHash(password, salt)
|
|
|
|
|
|
|
|
def getScryptHash(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,
|
|
|
|
salt=salt,
|
|
|
|
N=16384,
|
|
|
|
r=8,
|
|
|
|
p=1,
|
|
|
|
buflen=32)
|
|
|
|
|
|
|
|
return hashed
|