api_main

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
api_main [2021/10/19 08:19]
phaust [Расшифровка] +Python
api_main [2021/10/19 13:05]
phaust удалено
Строка 28: Строка 28:
 ==== Пример ==== ==== Пример ====
  
-Например:​ !api:​user_id,​task_id!+Например: ​''​!api:​user_id,​task_id!''​
  
-Сгенерирует зашифрованную строку ​bc1443bbb42bafc0501bc821c2fb55a987fda029d4ea6657 ​которую можно расшифровать в {'​u':​15, 'tid:32432} с помощью ключа игры.+Сгенерирует зашифрованную строку ​''​0394334e96a2f0fa738470e9a9778c684ba214990d200eab'', ​которую можно расшифровать в <​code>​ 
 +{'​u': ​162862, 'tid'42719} 
 +</​code>​ 
 +с помощью ключа игры ​''​XgHxzCvUSXwPfR7wBvdY4xHC6tSFLewx''​.
  
 [[https://​qeng.org/​game.php?​jump_to&​gid=3493&​task_id=42719|Пример задания в игре]] [[https://​qeng.org/​game.php?​jump_to&​gid=3493&​task_id=42719|Пример задания в игре]]
- 
 ==== Расшифровка ==== ==== Расшифровка ====
  
Строка 66: Строка 68:
 def decrypt_qeng_data( def decrypt_qeng_data(
     data: str,     data: str,
-    key: bytes,+    key: str,
 ) -> typing.Dict[str,​ typing.Union[str,​ int]]: ) -> typing.Dict[str,​ typing.Union[str,​ int]]:
     data = binascii.unhexlify(data)     data = binascii.unhexlify(data)
-    cipher = blowfish.Cipher(key)+    cipher = blowfish.Cipher(key.encode())
     data_decrypted = b""​.join(cipher.decrypt_ecb(data))     data_decrypted = b""​.join(cipher.decrypt_ecb(data))
 +    data_decrypted = data_decrypted.rstrip(b'​\x00'​)
     data_json = json.loads(data_decrypted)     data_json = json.loads(data_decrypted)
     return data_json     return data_json
Строка 77: Строка 80:
 def main(): def main():
     data = '​0394334e96a2f0fa738470e9a9778c684ba214990d200eab'​     data = '​0394334e96a2f0fa738470e9a9778c684ba214990d200eab'​
-    ​# Обязательно ключ игры с b''​ +    key = '​XgHxzCvUSXwPfR7wBvdY4xHC6tSFLewx'​ 
-    ​key = b'​XgHxzCvUSXwPfR7wBvdY4xHC6tSFLewx'​+    ​
     decrypted = decrypt_qeng_data(data,​ key)     decrypted = decrypt_qeng_data(data,​ key)
     print(decrypted)     print(decrypted)