Procházet zdrojové kódy

ADD:修改加密方式

cxyu před 3 roky
rodič
revize
514d9c0ffd
2 změnil soubory, kde provedl 13 přidání a 10 odebrání
  1. 6 5
      data_manage/operate.py
  2. 7 5
      model/UserAuthUtils.py

+ 6 - 5
data_manage/operate.py

@@ -138,11 +138,12 @@ def get_channel(arg):
     # 普通权限------java,获取本人对应拥有的公众号
     g_time = int(time.time())
     base_url = 'https://api.zanxiangnet.com'
-    params = '/erp/api/resource/search/3'
+    params = f'/erp/api/resource/subUserResourceList/3/{user_id}/投手,运营'
     g_token = get_g_token(g_time, params)
     params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
-    params_other = f'?userIds={user_id}'
-    url = base_url + params + params_other + '&' + params_other_urlencode
+    # 防止urlencode自动换行
+    params_other_urlencode = params_other_urlencode.replace('%0A', '')
+    url = base_url + params + '?' + params_other_urlencode
     rsp = requests.get(url)
 
     channel_list = rsp.json()['data']
@@ -216,6 +217,6 @@ def get_user_name_by_id(user_id):
 
 
 if __name__ == '__main__':
-    # print(get_channel({'user_id':1}))
+    print(get_channel({'user_id':78}))
     # print(get_user_name_by_id({'user_id':78,'name':''}))
-    print(get_user_name_by_id(78))
+    # print(get_user_name_by_id(78))

+ 7 - 5
model/UserAuthUtils.py

@@ -5,17 +5,18 @@ import time
 from config.using_config import aes_token
 from urllib.parse import urlencode
 from Crypto.Cipher import AES
+from Crypto.Util.Padding import pad
 
 
 def get_g_token(g_time, params):
     bs = AES.block_size
-    pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)
+    # pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)
     # 设置加密方式
     cipher = AES.new(aes_token.encode('utf-8'), AES.MODE_ECB)
     # 设置原始数据
     pad_params = params + str(g_time)
     # 数据加密
-    data = cipher.encrypt(pad(pad_params).encode('utf-8'))
+    data = cipher.encrypt(pad(pad_params.encode('utf-8'), bs))
     g_token = (base64.encodebytes(data)).decode('utf8').strip()
     return g_token
 
@@ -61,11 +62,12 @@ def get_auth_channel(user_id):
     # 普通权限------java,获取本人对应拥有的公众号
     g_time = int(time.time())
     base_url = 'https://api.zanxiangnet.com'
-    params = '/erp/api/resource/search/3'
+    params = f'/erp/api/resource/subUserResourceList/3/{user_id}/投手,运营'
     g_token = get_g_token(g_time, params)
     params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
-    params_other = f'?userIds={user_id}'
-    url = base_url + params + params_other + '&' + params_other_urlencode
+    # 防止urlencode自动换行
+    params_other_urlencode = params_other_urlencode.replace('%0A', '')
+    url = base_url + params + '?' + params_other_urlencode
     rsp = requests.get(url)
     channel_list = rsp.json()['data']
     data1 = []