def EncryptPassword(password, key):
		""" Encrypts the password using the given key. """
		from time import time
		from array import array
		import hmac
		import sha
		import os
		import base64

		H = UcsUtils.GetShaHash

		uhash = H(','.join(str(x) for x in [`time()`, `os.getpid()`, `len(password)`, password, key]))[:16]

		k_enc, k_auth = H('enc' + key + uhash), H('auth' + key + uhash)
		n = len(password)
		passwordStream = array('L', password + '0000'[n & 3:])
		xkey = UcsUtils.Expandkey(k_enc, n + 4)

		for i in xrange(len(passwordStream)):
			passwordStream[i] = passwordStream[i] ^ xkey[i]

		ct = uhash + passwordStream.tostring()[:n]
		auth = hmac.new(ct, k_auth, sha).digest()

		encryptStr = ct + auth[:8]
		encodedStr = base64.encodestring(encryptStr)
		encryptedPassword = encodedStr.rstrip('\n')
		return encryptedPassword
def EncryptPassword ( password , key ) : from time import time from array import array import hmac import sha import os import base64 H = UcsUtils . GetShaHash uhash = H ( ',' . join ( str ( x ) for x in [ ` time ( ) ` , ` os . getpid ( ) ` , ` len ( password ) ` , password , key ] ) ) [ : 16 ] k_enc , k_auth = H ( 'enc' + key + uhash ) , H ( 'auth' + key + uhash ) n = len ( password ) passwordStream = array ( 'L' , password + '0000' [ n & 3 : ] ) xkey = UcsUtils . Expandkey ( k_enc , n + 4 ) for i in xrange ( len ( passwordStream ) ) : passwordStream [ i ] = passwordStream [ i ] ^ xkey [ i ] ct = uhash + passwordStream . tostring ( ) [ : n ] auth = hmac . new ( ct , k_auth , sha ) . digest ( ) encryptStr = ct + auth [ : 8 ] encodedStr = base64 . encodestring ( encryptStr ) encryptedPassword = encodedStr . rstrip ( '\n' ) return encryptedPassword
Encrypts the password using the given key.