解密s3文件卸载使用unload命令与对称密钥encryption
我尝试使用AES对称密钥encryption解密由s3上传的文件,通过从redshift卸载命令上传。 如果我们使用AWS Java sdk下载aes key给s3客户端,那么它就可以正常工作。但是如果我们在下载文件后尝试手动解密它,它会给出javax.crypto.BadPaddingException: Given final block not properly padded
错误。
手动解密文件的原因是我想解密使用node.js文件,据我所知,没有节点中的sdk,可以直接做到这一点。
我试过的Node.js代码:
var AWS = require('aws-sdk'); var fs = require('fs'); var crypto = require('crypto'); var CryptoJS = require("crypto-js"); var algorithm = 'aes256'; var inputEncoding = 'hex'; var outputEncoding = 'utf-8'; var key = "symmetric key base 64"; //prod var data = fs.readFileSync('/tmp/files/myfile'); console.log(data); var decipher = crypto.createDecipher(algorithm,key); var deciphered = decipher.update(data, inputEncoding, outputEncoding); console.log(deciphered); deciphered += decipher.final(outputEncoding); console.log(deciphered);
当我尝试这个我得到这个错误: Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt