我希望有人能对过去几个小时一直困扰我的问题有所了解。
我正在尝试解码已在 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
任何帮助都将不胜感激,因为我现在唯一剩下的选择就是把自己淹死在一桶 [Jamerson || 麒麟一番](我只是在开玩笑)
PS这里有一个关于 SO 的类似问题,遗憾的是,这对我的案例没有任何启发。