Skip to content

Instantly share code, notes, and snippets.

@viewpnt
Forked from garrettreid/SSHA512_gen.py
Created May 15, 2020 03:10
Show Gist options
  • Save viewpnt/d39ba0d48355a7a3bbec691eda552fff to your computer and use it in GitHub Desktop.
Save viewpnt/d39ba0d48355a7a3bbec691eda552fff to your computer and use it in GitHub Desktop.

Revisions

  1. @garrettreid garrettreid created this gist Jan 9, 2014.
    28 changes: 28 additions & 0 deletions SSHA512_gen.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    #!/usr/bin/python

    import os
    import hashlib
    import getpass
    import base64

    password1 = None
    password2 = None

    # Read the password
    while password1 != password2 or password1 == None:
    password1 = getpass.getpass()
    password2 = getpass.getpass("Confirm password: ")
    if (password1 != password2):
    print "\nPassword mismatch, try again."

    # Generate a 5 byte random salt
    salt = os.urandom(5)

    # Hash our password + salt
    sha = hashlib.sha512()
    sha.update(password1)
    sha.update(salt)
    ssha512 = base64.b64encode('{}{}'.format(sha.digest(), salt))

    # Print it out with a prefix for Dovecot
    print "\n{{SSHA512}}{}".format(ssha512)