Tôi muốn mã hóa một số dữ liệu trong ứng dụng ruby và sau đó giải mã dữ liệu đó trong ứng dụng nodejs. Tôi đã cố gắng để có được điều này để làm việc và bây giờ tôi chỉ cố gắng để mã hóa cùng một mảnh dữ liệu trong cả hai ngôn ngữ để có được kết quả tương tự nhưng tôi dường như không thể làm điều đó.Mã hóa dữ liệu bằng giải mã ruby bằng nút
//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
Vì vậy, có vẻ như tôi nhận được chuỗi thập lục phân từ mã hóa.
#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 # 皋?;??
Có một số vấn đề về mã hóa mà tôi đang thiếu. Tôi đã cố gắng giải mã base64 nhưng không tạo ra kết quả tương tự như ứng dụng nút. Bất kỳ con trỏ?
CẬP NHẬT: Vì vậy, điều này gần với một người bạn và tôi có thể nhận được: https://gist.github.com/a880ea13d3b65a21a99d. Sheesh, tôi chỉ muốn mã hóa một cái gì đó trong ruby và giải mã nó trong nút.
UPDATE2: Alright, mã trong vấn đề này được tôi rất nhiều con đường đó: https://github.com/joyent/node/issues/1395
Và trong ruby dường 1.8.7 kết quả đầu ra \ 347 \ 232 \ 213 \ 006 \ 250; \ 207 \ 302 trong khi 1,9,2 kết quả đầu ra \ xE7 \ x9A \ x8B \ x06 \ xA8; \ x87 \ xC2 –