Я шифровал сообщения с помощью модуля nodejs следующим образом:
var crypto = require('crypto'),
algorithm = 'aes-256-ctr',
password = 'd6F3Efeq';
function encrypt(text){
var cipher = crypto.createCipher(algorithm,password)
var crypted = cipher.update(text,'utf8','hex')
crypted += cipher.final('hex');
return crypted;
}
(отсюда: https://lollyrock.com/articles/nodejs-encryption/)
Однако, используя тот же секрет, тот же алгоритм и тот же режим, я не могу расшифровать это с помощью криптографии в Python.
Вот одна из вещей, которые я пробовал:
crypto = AES.new(password, AES.MODE_CTR)
print(crypto.decrypt(message.decode("hex")))
Возвращает двоичные данные. Кодирование в UTF-8 не выполняется, и что самое интересное:
Похоже, AWS.new каждый раз генерирует случайный iv, и результат расшифровки для каждого прогона разный!
.. Теперь библиотека nodeJS не возвращает Nonce, поэтому я не знаю, что еще можно взять с собой из функции NodeJS, кроме зашифрованного текста и пароля (секретного) - есть идеи?