'Set a password for a GNTP Message
:param string password: Null to clear password
:param string encryptAlgo: Supports MD5, SHA1, SHA256, SHA512'

def set_password(self, password, encryptAlgo='MD5'):

    if (not password):
        self.info['encryptionAlgorithmID'] = None
        self.info['keyHashAlgorithm'] = None
        return
    self.password = gntp.shim.b(password)
    self.encryptAlgo = encryptAlgo.upper()
    if (not (self.encryptAlgo in self.hash_algo)):
        raise errors.UnsupportedError(('INVALID    HASH    "%s"' % self.encryptAlgo))
    hashfunction = self.hash_algo.get(self.encryptAlgo)
    password = password.encode('utf8')
    seed = time.ctime().encode('utf8')
    salt = hashfunction(seed).hexdigest()
    saltHash = hashfunction(seed).digest()
    keyBasis = (password + saltHash)
    key = hashfunction(keyBasis).digest()
    keyHash = hashfunction(key).hexdigest()
    self.info['keyHashAlgorithmID'] = self.encryptAlgo
    self.info['keyHash'] = keyHash.upper()
    self.info['salt'] = salt.upper()
