ETkObject.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2019/6/1 17:25
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: ETkObject.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import base64
  15. import urllib.parse
  16. from random import Random
  17. class ETkObject(object):
  18. def __init__(self, etk):
  19. self.uid = ''
  20. self.parseUid(etk)
  21. def parseUid(self, etk):
  22. try:
  23. c = base64.b64decode(etk)
  24. c = c[2:-2]
  25. c = urllib.parse.unquote(c.decode('utf-8'))
  26. c = base64.b64decode(c)
  27. uid = c.decode('utf-8')
  28. if len(uid) == 20:
  29. self.uid = uid
  30. except Exception as e:
  31. print(repr(e))
  32. def encrypt(self,data):
  33. s = data.encode()
  34. s = base64.b64encode(s)
  35. startStr = self.randomParam()
  36. endStr = self.randomParam()
  37. s = '{startStr}{s}{endStr}'.format(startStr=startStr,s=s.decode('utf-8'),endStr=endStr)
  38. s = base64.b64encode(s.encode())
  39. s=s.decode('utf-8')
  40. return s
  41. def randomParam(self):
  42. characterSet = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsT' \
  43. 'tUuVvWwXxYyZz0123456789'
  44. length = len(characterSet) - 1
  45. random = Random()
  46. ss = ''
  47. for index in range(2):
  48. ss += characterSet[random.randint(0, length)]
  49. return ss
  50. # etkObj = ETkObject(etk='')
  51. # PP = etkObj.encrypt('jLBDSU9547NTRSMF111A')
  52. # print('encode_data:')
  53. # print(PP)
  54. # print('decode_data:')
  55. # eobj = ETkObject(etk=PP)
  56. # uid = eobj.uid
  57. # print(uid)