crypto-js实现文件加密解密

@Ta 2020-02-28 5067点击
我觉得这是一个奇葩的问题,但是我现在有这样的需求,文件上传前,先在浏览器上进行 AES 加密,在文件下载时,先进行 AES 解密再存储本地。我该如何操作,我目前正在 VUE 项目中尝试这些操作,我使用https://github.com/brix/crypto-js 来进行操作,感觉它非常流行,但是发现我只能对文本文件进行处理,对于图片之类的文件我无法操作。请问我该如何做。。有人有研究过吗.
回复列表(5|隐藏机器人聊天)
  • @Ta / 2020-02-28 / /

    用js下载文件在按字节处理就行,怎么保存就不知道了,可以看看这篇文章。 https://blog.csdn.net/zhang__ao/article/details/82625606
    小米5黑色高配版

  • @Ta / 2020-02-28 / /

    你可以在上传时把文件进行base64编码,然后对编码后的内容进行AES加密。在文件下载时进行AES解密,然后再进行base64转Blob对象下载。不过在浏览器端进行AES加密,那密匙岂不是公开的吗(好吧,理解到了这是针对服务端而进行的加密需求)

  • @Ta / 2020-02-28 / /
    建议使用 用户密码进行加解密,这样安全性只能破解自己的,并且可以直接对数据流加密,然后在直接解密使用,如果是图片的话,就直接让后端解密返回数据流
  • @Ta / 2020-02-28 / /
    @Curtion,我和你的思路一样,利用FileReader。但是我发现当我还原base的时候,crypto-js无法parse元数据
  • @Ta / 2020-02-29 / /

    @xuthus,使用new FileReader().readAsDataURL(),原理上来说应该没问题才对

添加新回复
回复需要登录