我正在搜索一个提供安全加密的 javascript 库。客户端必须生成一个密钥,所有上传到服务器的数据都被加密,所有下载的数据都被解密。我需要一个经过身份验证的加密方案,仅 CTR 或 CBC 是不够的。
我听说过 sjcl,但似乎 sjcl 只能一次加密整个数据。我没有找到一种方法来逐块加密数据。因为上传的文件可能非常大,这种方法是不可行的。我需要类似 java 加密接口的东西,它有两个方法 update() 和 final()。
我发现 nodeJS 加密库似乎可以满足我的需要,但我不知道如何在浏览器端使用它。
我找到了 google crypto-js,但是这个库似乎不提供经过身份验证的加密,而只提供标准模式。
有没有办法用 sjcl 逐块加密数据?在浏览器端使用 nodeJS 加密库?将经过身份验证的加密与 crypto-js 一起使用?或者是否有另一个安全的 javascript 库可以提供我需要的东西?