DmitrMakeev commited on
Commit
cad14ea
·
verified ·
1 Parent(s): 068eb24

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -4
app.py CHANGED
@@ -925,7 +925,29 @@ def get_order_monitop():
925
  return json.dumps({"error": str(e)}), 500
926
 
927
 
928
- # Чтение ордера по ключу и ВК ИД для приложения
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
929
  @app.route('/get_order', methods=['POST'])
930
  def get_order():
931
  try:
@@ -933,15 +955,18 @@ def get_order():
933
 
934
  # Читаем параметры из POST-запроса
935
  data = request.json
936
- key_admin = data.get('key_admin', '')
937
  vkid = data.get('vk_id', '')
938
  order = data.get('order', '')
939
 
 
 
 
 
940
  if key_admin != api_key_admin:
941
  logging.error("Invalid admin key")
942
  response = {order: 'not', 'online_date': '', 'crypto': ''}
943
  return jsonify(response), 200
944
-
945
 
946
  if not vkid or not order:
947
  logging.error("VK ID and order are required")
@@ -983,7 +1008,6 @@ def get_order():
983
  except Exception as e:
984
  logging.error(f"An error occurred: {str(e)}")
985
  return json.dumps({"error": str(e)}), 500
986
-
987
 
988
 
989
 
 
925
  return json.dumps({"error": str(e)}), 500
926
 
927
 
928
+
929
+ # Функция для расшифровки данных для Чтение ордера по ключу и ВК ИД для приложения
930
+ def decrypt(encrypted_data, key):
931
+ # Добавляем заполнение до длины, кратной 16
932
+ def pad(s):
933
+ return s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)
934
+
935
+ # Удаляем заполнение
936
+ def unpad(s):
937
+ return s[:-ord(s[len(s)-1:])]
938
+
939
+ # Декодируем зашифрованные данные из base64
940
+ encrypted_data = base64.b64decode(encrypted_data)
941
+
942
+ # Создаем объект AES для расшифровки
943
+ cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
944
+
945
+ # Расшифровываем данные
946
+ decrypted_data = unpad(cipher.decrypt(encrypted_data).decode('utf-8'))
947
+
948
+ return decrypted_data
949
+
950
+ # Чтение ордера по ключу и ВК ИД для приложения
951
  @app.route('/get_order', methods=['POST'])
952
  def get_order():
953
  try:
 
955
 
956
  # Читаем параметры из POST-запроса
957
  data = request.json
958
+ encrypted_key_admin = data.get('key_admin', '')
959
  vkid = data.get('vk_id', '')
960
  order = data.get('order', '')
961
 
962
+ # Расшифровываем ключ администратора
963
+ key_admin = decrypt(encrypted_key_admin, crypto_key_sys)
964
+
965
+ # Проверка что key_admin совпадает с api_key_admin. Если совпадает продолжаем, если нет возвращаем "not"
966
  if key_admin != api_key_admin:
967
  logging.error("Invalid admin key")
968
  response = {order: 'not', 'online_date': '', 'crypto': ''}
969
  return jsonify(response), 200
 
970
 
971
  if not vkid or not order:
972
  logging.error("VK ID and order are required")
 
1008
  except Exception as e:
1009
  logging.error(f"An error occurred: {str(e)}")
1010
  return json.dumps({"error": str(e)}), 500
 
1011
 
1012
 
1013