Я надеюсь, что кто-то может пролить свет на проблему, которая беспокоила меня в течение последних нескольких часов.
Я пытаюсь декодировать строку, закодированную в Ruby, таким образом:
#!/usr/bin/env ruby
require 'base64'
require 'openssl'
require 'openssl/cipher'
require 'openssl/digest'
aes = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
aes.encrypt
aes.key = Digest::SHA256.digest('IHazSekretKey')
p Base64.encode64( aes.update('text to be encrypted') << aes.final )
Выполнение вышеуказанного выдает: "3P86KyOrN2QJ/HFxxo3b7kAsxTgpDMMjROUPclsuXj0=\n"
Теперь я пытаюсь расшифровать эту строку в NodeJS 0.6.17.
#!/usr/bin/env node
var crypto = require('crypto');
function decrypto(toDecryptStr) {
var result,
encoded = new Buffer(toDecryptStr, 'base64'),
decodeKey = crypto.createHash('sha256').update('IHazSekretKey', 'ascii').digest(),
decipher = crypto.createDecipher('aes-256-cbc', decodeKey);
result = decipher.update(encoded);
result += decipher.final();
return result;
};
console.log(decrypto('3P86KyOrN2QJ/HFxxo3b7kAsxTgpDMMjROUPclsuXj0='));
console.log(decrypto('3P86KyOrN2QJ/HFxxo3b7kAsxTgpDMMjROUPclsuXj0=\n')
Второй скрипт дает:
nazar@xfce:~/tmp/tst$ ./js_decrypt
Å'{ H£V)ÜB
Å'{ H£V)ÜB
Любая помощь будет очень признательна, так как мой единственный оставшийся вариант - утопиться в бочке [Джемерсона || Кирин Ичибан] (шучу)
PS есть аналогичный вопрос на SO здесь, который, к сожалению, не это не дало никакого вдохновения для моего случая.