ETkObject.py 1.8 KB

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