Шифрование данных с помощью дешифрования ruby ​​с помощью узла

Я хочу зашифровать некоторые данные в приложении Ruby, а затем декодировать их в nodejs приложение. Я пытался заставить это работать, и теперь я просто пытаюсь зашифровать один и тот же фрагмент данных на обоих языках, чтобы получить тот же результат, но я не могу этого сделать.

//js
var crypto = require('crypto');

var key = crypto.createHash('sha1').update('key').digest('hex');
console.log(key); // a62f2225bf70bfaccbc7f1ef2a397836717377de

var encrypted = "";
var cipher = crypto.createCipher('bf-cbc', key);

encrypted += cipher.update('text');
encrypted += cipher.final('hex');

console.log(encrypted); //outputs 4eafd5542875bd3c

Похоже, я получаю шестнадцатеричная строка из кодировки.

#ruby
require 'openssl'
require 'digest/sha1'
c = OpenSSL::Cipher::Cipher.new("bf-cbc")
c.encrypt
# your pass is what is used to encrypt/decrypt
c.key = key = Digest::SHA1.hexdigest("key")
p key # a62f2225bf70bfaccbc7f1ef2a397836717377de
e = c.update("text")
e << c.final
p e # 皋?;??

Есть ли какая-то проблема с кодировкой, которую мне не хватает. Я попытался декодировать e с помощью base64, но это не дало того же результата, что и приложение узла. Есть указатели?

ОБНОВЛЕНИЕ: Так что это так близко, как друг, и я могу получить: https://gist.github.com/a880ea13d3b65a21a99d . Шиш, я просто хочу зашифровать что-то в рубине и расшифровать его в узле.

UPDATE2: Хорошо, код в этом выпуске дает мне много полезного: https://github.com/joyent/ узел / вопросы / 1395

8
задан MPelletier 31 August 2011 в 21:16
поделиться