RSA和AES加密

7
我正在研究在一些应用程序的前端中使用Chrome应用的可行性。(顺便说一下,如果有人对此有任何想法,请在评论中提出)
我将使用chrome.socket,并希望连接是安全的,因此需要RSA和AES加密,这将与尽可能多的后端技术实现兼容(C#,Java等)。我的意思是不同的模式、密钥长度、实现特定细节...
我已经自己搜索了一些,发现了https://code.google.com/p/crypto-js/用于AES加密。这仍然是使用的接受库吗,还是有其他的? ...但是,我找不到RSA库? 关于安全性的注意事项,我不认为这会成为问题,因为这是一个Chrome扩展,因此HTML / JavaScript没有通过互联网发送,但是我错过了其他的安全影响吗?

chrome.socket(注意:不是 chrome.sockets)在 Chrome 扩展中不可用。 - sowbug
1
好的,但是 chrome.socket 在 Chrome 扩展中仍然不可用。 - sowbug
@sowbug 除非我错过了什么显而易见的东西,否则我相信它现在甚至在“稳定”分支中:http://developer.chrome.com/apps/socket.html - Cheetah
Chrome扩展无法使用套接字API,但Chrome应用程序可以。绝对没有计划将套接字API提供给扩展。 - sowbug
@sowbug 谢谢!显然我有点混淆了! - Cheetah
3个回答

5
您可以尝试使用以下内容:

Stanford Javascript加密库:http://crypto.stanford.edu/sjcl/

SJCL是安全的。 它使用行业标准AES算法,128、192或256位; 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中大数学的快速、可移植实现,可在桌面和移动浏览器上进行公钥加密和其他应用。

他们还声明它与openssl完全互操作,并提供了确认方法。

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

CryptoJS是一组在JavaScript中实现的标准和安全的加密算法,使用最佳实践和模式。 它们快速,并且具有统一简单的接口。


但是谷歌的CryptoJS不支持RSA(部分是问题),对吧? - humanityANDpeace
@humanityANDpeace 看起来这里有相关的代码提议:https://groups.google.com/forum/m/#!topic/crypto-js/xUdAHo7RXEg - Don Rhummy

0

我正在指出我为大学做的一些工作,它可能充满了错误,并且可以用更好的方式完成。它非常快速,并且可以很好地处理大密钥。可以使用具有n位密钥的RSA。

如果您需要了解其工作原理,请查看测试。但是任何错误或改进都将不胜感激。

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

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


0

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

https://github.com/digitalbazaar/forge


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接