5

クライアントでzipファイルを開くための優れたライブラリがたくさんあります:zip.js、jszipなど...しかし、暗号化されたzipファイルを開くことができるライブラリは見つかりませんでした。クライアント側 (ブラウザー) で zip ファイルを開くソリューションはありますか?

4

1 に答える 1

2

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;
};
于 2021-03-16T08:06:22.117 に答える