在上传到服务器之前如何加密文件?

我正在将这样的文件发送到服务器:

  const fd = new FormData()
  const targetFile = document.getElementById('default_file').files[0]
  fd.append('file', targetFile )

  fetch('url', {
    method: 'POST',
    body: fd,
  })

我希望能够在上传之前使用密码对文件进行加密(客户端)

到目前为止,我已经尝试过了,但是我不确定下一步要去哪里:

  const targetFile = document.getElementById('default_file').files[0]
  const reader = new FileReader()
  reader.readAsArrayBuffer(targetFile)
  reader.onload = () => {

    console.log(reader.result)
    const encrypted = CryptoJs.AES.encrypt(reader.result, "password123") <-- is this correct?

   //should i convert the encrypted part to something specific?
  }

reader.result返回文件的arraybuffer,这是我必须加密的部分,并且文件将保持相同的格式,以便我可以将其上传到服务器而不更改那里的代码吗?

评论