7

我正在研究在我正在开发的一些应用程序的前端使用 Chrome 应用程序的可行性。(顺便说一句,如果有人对此有任何想法 - 请在评论中提出)

我将使用chrome.socket并且希望连接是安全的,因此需要 RSA 和 AES 加密,它们将与尽可能多的后端技术实现(C#、Java 等)兼容。我的意思是不同的模式、密钥长度、特定于实现的细节......

现在我自己做了一些搜索,发现https://code.google.com/p/crypto-js/用于 AES 加密。这仍然是公认的图书馆,还是有另一个?

...但是,我找不到 RSA 库?

关于安全性,我不认为这是一个问题,因为这是一个 Chrome 扩展程序,所以 HTML/JavaScript 没有通过互联网发送,但是我错过了任何其他安全隐患吗?

4

3 回答 3

5

你可以尝试使用这个:

斯坦福 Javascript 加密库:http ://crypto.stanford.edu/sjcl/

SJCL 是安全的。它使用 128、192 或 256 位的行业标准 AES 算法;SHA256 哈希函数;HMAC认证码;PBKDF2 密码增强器;以及 CCM 和 OCB 认证加密模式。

在此处检查 API:http: //bitwiseshiftleft.github.io/sjcl/doc/

斯坦福大学还有一个页面显示 Javascript 中的 RSA(以及其他)加密:http ://www-cs-students.stanford.edu/~tjw/jsbn/

JavaScript 中的 RSA 和 ECC:

jsbn 库是在纯 JavaScript 中快速、可移植地实现大量数学,支持桌面和移动浏览器上的公钥加密和其他应用程序。

他们还声明它是 100% 可互操作的,openssl并有关于如何确认这一点的说明。

您也可以尝试 CryptoJS:https ://code.google.com/p/crypto-js/

CryptoJS 是使用最佳实践和模式在 JavaScript 中实现的标准和安全加密算法的不断增长的集合。它们速度很快,并且具有一致且简单的界面。

于 2013-06-06T18:01:13.600 回答
0

看起来您可能更喜欢在这里有一个完整的 TLS 实现。您应该能够使用 forge(TLS 的 JavaScript 实现)用 TLS 包装器包装 chrome.socket:

https://github.com/digitalbazaar/forge

于 2013-07-28T17:47:08.720 回答
0

我是在指出我为大学所做的一些工作,它可能充满了错误,并且可以以更好的方式完成。它非常快,并且适用于大键。可以将 RSA 与具有 n 位的密钥一起使用。

如果您需要了解它是如何工作的,请检查测试。不过,任何错误或改进都会受到赞赏。

请注意,您可能需要进行一些搜索,因为不仅仅是 RSA。

https://github.com/llacroix/rsa-js

于 2015-05-17T13:02:39.160 回答