tkObject.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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: tkObject.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import base64
  15. import urllib.parse
  16. from random import Random
  17. class tkObject(object):
  18. def __init__(self, tk='', rank=0):
  19. self.data = ''
  20. self.rank = rank
  21. self.parseUid(tk)
  22. def parseUid(self, tk):
  23. try:
  24. c = base64.b64decode(tk)
  25. rank = self.rank
  26. c = c[rank:-1*rank]
  27. c = urllib.parse.unquote(c.decode('utf-8'))
  28. c = base64.b64decode(c)
  29. data = c.decode('utf-8')
  30. self.data = data
  31. except Exception as e:
  32. print(repr(e))
  33. def encrypt(self, data):
  34. s = data.encode()
  35. s = base64.b64encode(s)
  36. rank = self.rank
  37. startStr = self.randomParam(rank=rank)
  38. endStr = self.randomParam(rank=rank)
  39. s = '{startStr}{s}{endStr}'.format(startStr=startStr, s=s.decode('utf-8'), endStr=endStr)
  40. s = base64.b64encode(s.encode())
  41. s = s.decode('utf-8')
  42. return s
  43. def randomParam(self, rank):
  44. characterSet = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsT' \
  45. 'tUuVvWwXxYyZz0123456789'
  46. length = len(characterSet) - 1
  47. random = Random()
  48. ss = ''
  49. for index in range(rank):
  50. ss += characterSet[random.randint(0, length)]
  51. return ss
  52. # tkobj = tkObject(tk='',rank=3)
  53. # PP = tkobj.encrypt(data='154390905041313800138000')
  54. # print('encode_data:')
  55. # print(PP)
  56. # print('decode_data:')
  57. #######################################################
  58. # ttk = '3Zerjt9SIO9Etj7QYnf267aAFq3GobBh'
  59. # tkobj = tkObject(tk=ttk,rank=3)
  60. # data = tkobj.data
  61. # print(data)