有许多优秀的库可以在客户端打开 zip 文件,例如:zip.js、jszip 等...
但我找不到任何可以打开加密 zip 文件的库。是否有在客户端(在浏览器中)打开 zip 文件的解决方案?
最佳答案
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;
};
关于javascript - 使用 javascript 提取受密码保护的 zip 文件(客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063494/