【问题标题】:extract password protected zip file using javascript (client side)使用 javascript 提取受密码保护的 zip 文件(客户端)
【发布时间】:2015-01-21 09:21:12
【问题描述】:

有许多优秀的库可以在客户端打开 zip 文件,例如:zip.js、jszip 等... 但我找不到任何可以打开加密 zip 文件的库。是否有在客户端(在浏览器中)打开 zip 文件的解决方案?

【问题讨论】:

  • 您对此有什么解决方案吗?如果你能分享,那就太好了。

标签: javascript encryption jszip zip.js


【解决方案1】:

Zip.js 支持加密。在演示中尝试: https://gildas-lormeau.github.io/zip.js/demos/demo-read-file.html。下面是一个示例,说明如何检查 zip 文件(作为 Blob 对象提供)的密码是否有效。

const verifyZipPassword = async (file, password) => {
    let reader;
    try {
        reader = new zip.ZipReader(new zip.BlobReader(file), { password });
        const entries = await reader.getEntries();
        for (const entry of entries) {
            try {
                await entry.getData(new zip.BlobWriter());
            } catch (error) {
                if (error.message === zip.ERR_ENCRYPTED ||
                    error.message === zip.ERR_INVALID_PASSWORD) {
                    return false;
                } else {
                    throw error;
                }
            }
        }
    } finally {
        await reader.close();
    }
    return true;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多