Saturday, 14 January 2012

ssha hash generator

A typical script, that generate ssha hash.
Thanks to the openldap project


#!/usr/bin/env python
import hashlib
import os
from base64 import encodestring as encode
from base64 import decodestring as decode
import getpass

def makeSecret(password):
    salt = os.urandom(4)
    h = hashlib.sha1(password)
    h.update(salt)
    return "{SSHA}" + encode(h.digest() + salt)

def checkPassword(challenge_password, password):
    challenge_bytes = decode(challenge_password[6:])
    digest = challenge_bytes[:20]
    salt = challenge_bytes[20:]
    hr = hashlib.sha1(password)
    hr.update(salt)
    return digest == hr.digest()

if __name__ == "__main__":
   pass1 = getpass.getpass()
   pass2 = getpass.getpass()
   if pass1 == pass2:
      ver = makeSecret(pass1)
      print ver
      bol = checkPassword(ver,pass1)
      print bol
   else:
      print "pass are not equals"

No comments:

Post a Comment