仅尝试使用节点的加密库对使用AES256加密的图像进行解码。
遇到错误
Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
at Decipheriv._flush (internal/crypto/cipher.js:144:29)
at Decipheriv.prefinish (_stream_transform.js:140:10)
at Decipheriv.emit (events.js:200:13)
at prefinish (_stream_writable.js:633:14)
at finishMaybe (_stream_writable.js:641:5)
at endWritable (_stream_writable.js:661:3)
at Decipheriv.Writable.end (_stream_writable.js:592:5)
at ReadStream.onend (_stream_readable.js:675:10)
at Object.onceWrapper (events.js:288:20)
at ReadStream.emit (events.js:205:15)
[ERROR] 16:21:31 Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
我尝试了通过互联网提供的各种解决方案,例如设置 setAutoPadding(true) enableAutoClose:是/否
import fs from 'fs';
import crypto from 'crypto';
const AppendInitVect = require('./initVect');
const readStream = fs.createReadStream('./err.jpg');
const writeStream = fs.createWriteStream('./err-dec.jpg');
const IV = Buffer.from('jUwTYHaRTfSZ+Jvpk+6hag==', 'base64');
const CIPHER_KEY = Buffer.from('lQKDZadn2N8CPLqLcvP25+uHBlYqOlRpSuDJ9qo2JrM=', 'base64');
console.log(IV);
console.log(CIPHER_KEY);
const decipher = crypto.createDecipheriv('aes-256-cbc', CIPHER_KEY, IV).setAutoPadding(true);
readStream
.pipe(decipher)
.pipe(writeStream)
///我希望我的文件被解码而没有任何错误。