前端zip.js实现加密打包上传文件

本文介绍了如何在前端利用zip.js库实现文件的加密打包上传,服务端不解密,保证文件私密性。同时,讲解了解密并获取压缩文件列表以及下载指定文件的操作,但在处理大文件时可能存在错误。
摘要由CSDN通过智能技术生成

背景:一方面,部分系统对文件的私密性和安全性要求较高,实现前端加密打包,服务端不存储密码 ,下载时手动输入密钥并解压文件。另一方面,传输压缩包到客户端,节约了带宽,节约了传输时间。

使用的库: zip.js

  • Support of the Zip64 format
  • Support of WinZIP AES and PKWare ZipCrypto encryption
  • Support of simultaneous reads and writes to one or more zip files
  • Integrated worker pool manager
  • No dependencies
安装
 npm install @zip.js/zip.js 
引用
import * as zip from "@zip.js/zip.js";      //ES6 module
const zip = require("@zip.js/zip.js");     // or CommonJS module
实现

以下为vue的实现方案:

加密上传文件
import * as zip from '@zip.js/zip.js'
...
...
methods: {
   
  async handleZipFile () {
   
    const controller = new AbortController()
    const signal = controller.signal
    var zipWriter = new zip.ZipWriter(new zip.BlobWriter('application/zip'))
    await Promise.all(_.map(this.files, async (file) => {
   
      await zipWriter.add(file.name, new zip.BlobReader(file.raw), {
   
        bufferedWrite: true,
        password: this.password,
        signal,
        zipCrypto: true,
        onprogress: (index, max) => {
   
          
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值