使用节点js加密文件并在PostgreSQL中解密文件

时间:2017-01-12 15:17:26

标签: node.js postgresql encryption amazon-s3 amazon-redshift

加密和解密文件的新手

这里我试图加密csv文件(客户端加密)并推入带有expect元数据的s3存储桶然后我尝试使用PostgreSQL复制命令将ss存储桶中的csv文件解密(推送)到redshift但是它正在抛出错误加密错误

我知道当用户使用一种语言进行加密并在另一种语言中进行解密时,这实际上是一个常见问题,但我期待这样做。

这是我的代码

NodeJs

var fs = require('fs');
var crypto = require('crypto');

var sharedSecret = crypto.randomBytes(32).toString("base64"); 
var initializationVector = crypto.randomBytes(16).toString("base64"); 
var cipher = crypto.createCipher('AES256', sharedSecret,initializationVector);

var input = fs.createReadStream('file.csv');
var output = fs.createWriteStream('fileEncrypt.csv');

input.pipe(cipher).pipe(output);

output.on('finish', function() {
    console.log('Encrypted file written to disk!');
});

Redshift Copycommand

COPY  objects.encrypteddata (Date,Device, Start) 
FROM  's3://fakepath/fileEncrypt.csv' 
CREDENTIALS 'aws_access_key_id=<access_key>;aws_secret_access_key=<secret_key>;master_symmetric_key=<master_Key>'
delimiter ',' encrypted CSV IGNOREHEADER 1 MAXERROR 1000COMPUPDATE ON;

错误

ERROR: Failed writing body (0 != 453) Cause: error:06065064:
       digital envelope routines:EVP_DecryptFinal_ex:bad decrypt

欢迎精确解决方案

0 个答案:

没有答案