我正在搜索提供安全加密的javascript库。客户端必须生成密钥,并且上载到服务器的所有数据都被加密,所有下载的数据都被解密。我需要一种经过身份验证的加密方案,仅点击率或CBC是不够的。
我听说过sjcl,但似乎sjcl只能一次加密整个数据。我没有找到一种按块加密数据的方法。由于上传的文件可能很大,因此这种方法不可行。我需要带有两个方法update()和final()的java crypto接口(interface)之类的东西。
我发现似乎可以满足我需要的nodeJS加密库,但是我不知道如何在浏览器端使用它。
我找到了Google crypto-js,但是该库似乎不提供经过身份验证的加密,而仅提供标准模式。
有没有办法用sjcl逐块加密数据?要在浏览器端使用nodeJS密码库?要通过crypto-js使用经过身份验证的加密?还是有另一个安全的JavaScript库可以满足我的需求?
最佳答案
SJCL部署的CCM Appart是一种流密码模式,我将仔细研究它,而不仅仅是看便捷包装器。它是开源的,因此无论如何应该在某个地方实现原始密码。
请注意,这不是最终应信任的代码。当我尝试为其编写Java包装程序时,我很快发现了一个身份验证失败的错误。似乎便利库根本没有对关联的身份验证数据进行身份验证。由于未经过其他库的测试,因此我敦促您注意不要遗留一些错误。