0

I am extracting password protected zip in node js for this i am using unzipper node module. below is the code which i am using.

const unzipper = require('unzipper');
const fs = require('fs');
const path = require('path');


async function checkPasswordValid(zipFilePath, password) {
    let directory = null;
    try {
        directory = await unzipper.Open.file(zipFilePath);
        return new Promise((resolve, reject) => {
            // console.log(directory.files[0].path)
            directory.files[0].stream(password)
                .on('error', (err) => {
                    console.log('I am heere too bro in error')
                    console.log(err.message);

                })
                .on("readable", () => {
                    console.log('I am heere too bro')

                })
        });
    }
    catch (err) {
        console.log('I am heere too bro in error in catch')
        console.log(err.message);
    }
}


let zpath = 'D:/NodeJs/upload/zip/text.zip';
let exPath = 'D:/NodeJs/upload/extractFile/';
let pass = 'DEXTER';
checkPasswordValid(zpath, pass) 

when i try to manually open zip with password it's works fine but when i am using same password with node module unzipper i am getting below error.

I am heere too bro in error
BAD_PASSWORD
(node:6100) UnhandledPromiseRejectionWarning: #<Object>
(node:6100) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6100) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I don't know where i am doing wrong. Code looks perfect for me but not working. to made password protected zip i used winrar software on windows 10.

Dexter
  • 1,804
  • 4
  • 24
  • 53

1 Answers1

0

It appears that unzipper doesn't support all encryption methods. This issue has produced a feature request that has not been developed yet.