sign.py 895 B

123456789101112131415161718192021222324252627282930
  1. import time
  2. import random
  3. import string
  4. import hashlib
  5. class Sign:
  6. def __init__(self, jsapi_ticket, url):
  7. self.ret = {
  8. 'nonceStr': self.__create_nonce_str(),
  9. 'jsapi_ticket': jsapi_ticket,
  10. 'timestamp': self.__create_timestamp(),
  11. 'url': url
  12. }
  13. def __create_nonce_str(self):
  14. return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(15))
  15. def __create_timestamp(self):
  16. return int(time.time())
  17. def sign(self):
  18. string = '&'.join(['%s=%s' % (key.lower(), self.ret[key]) for key in sorted(self.ret)])
  19. print string
  20. self.ret['signature'] = hashlib.sha1(string).hexdigest()
  21. return self.ret
  22. if __name__ == '__main__':
  23. # 注意 URL 一定要动态获取,不能 hardcode
  24. sign = Sign('jsapi_ticket', 'http://example.com')
  25. print sign.sign()