我有一个使用openssl加密的文件,如下所示:
openssl enc -aes-256-cbc -in /tmp/file.zip -out /tmp/file.zip.enc -pass pass:"abcdefg" -e -base64
我想使用CryptoJs解密该文件。我从FileReader对象加载文件,如下所示:
$("#inputFile").change( function( e )
{
var files = e.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.onload = function( e ){
var result = e.target.result;
var decrypted = CryptoJS.AES.decrypt(result.split(/\s/).join(''), "abcdefg");
var string = CryptoJS.enc.Base64.stringify( decrypted );
console.log( string.substring(0,20) );
};
reader.readAsDataURL( file );
});
每次重新加载页面并加载完全相同的文件时,console.log中的输出都会发生变化。我想最终将解密文件转换为Blob并将其返回给用户,但我显然无法到达那里,直到我可以首先正确解密文件。
答案 0 :(得分:0)
你应首先进行64解码,然后解密。不解密,然后基本64编码。如果您还对密文进行编码,则只需将encrypt
切换为decrypt
即可。