using sha1 instead md5 to avoid key collision