我正在寻找一种在将浏览器的客户端上的任意大文件发送到Web服务器之前对其进行加密的方法。理想的情况下,我想在AES-256-CBC加密和以与OpenSSL的格式兼容。
使用Stream API,我现在能够逐块读取文件,进行处理并将其通过管道传输到XHR POST请求主体中,这很棒。
我现在需要一种使用AES对其进行加密的方法。不幸的是,WebCrypto API目前不兼容ReadableStreams。
https://github.com/w3c/webcrypto/issues/73
同时,最好的选择是什么?
答案 0 :(得分:0)
不幸的是,出于安全原因,我们不太可能在WebCrypto实现中看到流支持。出于某些原因,请参见Encrypting streams。
您还应该避免JS和WebASM加密实施,因为它们不太可能提供适当的安全保证。由于某些原因,请参见Why JS Crypto is Considered Harmful并查看Mitigating Side-Channel Attacks。
您将需要最终实现自己的分块并为您的案例使用WebCrypto。