utils.py 529 B

1234567891011121314151617181920
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import hashlib
  4. import binascii
  5. import base64
  6. def ldap_hash(password):
  7. """Hash a password for use with LDAP. If the password is already hashed,
  8. do nothing."""
  9. if password and not password.startswith('{SSHA}'):
  10. salt = binascii.hexlify(os.urandom(8))
  11. digest = hashlib.sha1(password.encode() + salt).digest()
  12. return '{SSHA}' + base64.b64encode(digest + salt).decode()
  13. else:
  14. return password
  15. if __name__ == '__main__':
  16. print(ldap_hash('coin'))