数字信封程序:EVP_DecryptFinal_ex:错误的最终块长度

时间:2019-08-05 11:02:24

标签: node.js typescript node.js-stream

仅尝试使用节点的加密库对使用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)

///我希望我的文件被解码而没有任何错误。

0 个答案:

没有答案
相关问题