Мой RoR сервер получает строку, которая была зашифрована в приложении C++ с использованием des3 с base64 кодированияDES3 дешифрования в Рубин на рельсы
Шифр объект создается так:
cipher = OpenSSL::Cipher::Cipher::new("des3")
cipher.key = key_str
cipher.iv = iv_str
key_str и iv_str: есть строковые представления ключа и вектора инициализации для алгоритма шифрования. Они одинаковы для приложений RoR и C++.
код на стороне RoR выглядит следующим образом:
result = ""
result << cipher.update(Base64.decode64(message))
result << cipher.final
После выполнения последней строки кода, я получаю исключение
OpenSSL::CipherError (bad decrypt)
Что здесь не так? Есть идеи ?
последняя линия? что такое переменная? объект AR? также, что делает окончательный метод? – makevoid
Как говорится в этом учебнике, http://olabini.com/blog/2008/08/ruby-security-quick-guide/ «Наконец, вам нужно позвонить в финал, чтобы получить последний сгенерированный текст шифрования» Я полагаю, что это метод близок к методу flush для потоков. – AntonAL