我正在搜索一个提供安全加密的 JavaScript 库。客户端必须生成密钥,所有上传到服务器的数据都被加密,所有下载的数据都被解密。我需要一个经过身份验证的加密方案,仅 CTR 或 CBC 是不够的。
我听说过 sjcl,但似乎 sjcl 只能一次加密整个数据。我没有找到按块加密数据的方法。由于上传的文件可能非常大,因此这种方法不可行。我需要像 java crypto 接口这样的东西,它有两个方法 update() 和 Final()。
我发现nodeJS加密库似乎可以满足我的需要,但我不知道如何在浏览器端使用它。
我找到了 google crypto-js,但该库似乎不提供经过身份验证的加密,而仅提供标准模式。
有没有办法用 sjcl 分块加密数据?要在浏览器端使用nodeJS加密库?使用 crypto-js 进行身份验证加密?或者是否有另一个安全的 javascript 库可以提供我需要的东西?
简短回答
恐怕这也不是不可能。
长答案
因为您无法保证 Javascript 库的完整性,所以您不能依赖它执行您期望它执行的操作。因此,您无法保证任何安全。
这个问题已经被广泛讨论,并且总是得出相同的结论:如果没有任何双向身份验证和安全通道,您的客户端就无法验证库的正确性。如果任何中间人更改了加密例程,您的客户将不会知道,更不用说您会发现。
So, to guarantee security, you will need SSL and client certificates.
(non-guaranteed security does, off course, not exist)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)