Updated to use hashlib instead of md5