ETkObject.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. print(uid)
  31. except Exception as e:
  32. print(repr(e))
  33. def encrypt(self,data):
  34. s = data.encode()
  35. s = base64.b64encode(s)
  36. startStr = self.randomParam()
  37. endStr = self.randomParam()
  38. s = '{startStr}{s}{endStr}'.format(startStr=startStr,s=s.decode('utf-8'),endStr=endStr)
  39. s = base64.b64encode(s.encode())
  40. s=s.decode('utf-8')
  41. return s
  42. def randomParam(self):
  43. characterSet = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsT' \
  44. 'tUuVvWwXxYyZz0123456789'
  45. length = len(characterSet) - 1
  46. random = Random()
  47. ss = ''
  48. for index in range(2):
  49. ss += characterSet[random.randint(0, length)]
  50. return ss
  51. # etkObj = ETkObject(etk='')
  52. # PP = etkObj.encrypt('HLK7EJ2VYLNHHUMG111A')
  53. # print('encode_data:')
  54. # print(PP)
  55. # print('decode_data:')
  56. # eobj = ETkObject(etk='T1dha3hDUkZOVk9UVTBOMDVVVWxOTlJqRXhNVUU9U2w=')
  57. # uid = eobj.uid
  58. # print(uid)