Я пытаюсь расшифровать файл сохранения из игры.У меня уже есть рабочая версия этого в Python, но я не могу сделать это с библиотеками эквивалента в узле.
Это рабочий код Python:
import base64, gzip, os, zlib, struct
data = FileOpen(path) #returns file as ASCII
res = Xor(data,11)
fin = zlib.decompress(base64.b64decode(res.replace('-','+').replace('_','/').encode())[10:],-zlib.MAX_WBITS)
#fin is the decrypted string
Это то, что я пробовал с узлом, но zLib просто выбрасывает «проверку неверного заголовка»:
const fs = require('fs')
const zlib = require('zlib')
const xor = require('xor-crypt')
const { base64encode, base64decode } = require('nodejs-base64')
let data = fs.readFileSync(fPath + save).toString('ascii')
let res = xor(data,11)
let gzipd = Buffer.from(base64decode(res.replace('-','+').replace('_','/')).slice(0, -10))
let fin = zlib.inflateSync(gzipd).toString('utf-8')
проблема, скорее всего, заключается в библиотеке zlib, так как я не могу понять, почему дешифрование xor и base64 будет другим.У меня нет большого опыта работы с декомпрессией.
Вот пример чего-то, что я пытаюсь расшифровать (в ascii):
C?xBJJJJJJJJHTEBqheA::Ndrhlx]lHbYB\\X:DBXJEG92G^]JJJJ
Это означает «Привет, это тест», и когдаЯ расшифровываю его с помощью Python, он работает нормально.Кто-нибудь может понять, как расшифровать его с помощью узла?