2014-02-11 94 views
8

我已使用Stanford Javascript Crypto Library (SJCL)进行对称AES加密(基于其演示页面上的示例)。不过,我还需要生成一个密钥对,使用公钥对数据进行加密,并使用私钥对数据进行解密。一些班级名称表明这在SJCL中可能是可能的,但我想知道是否有人可以帮助它的例子。我并不担心私钥存储这个阶段,只是内存中的生成和公钥/私钥对的使用。如何在SJCL中实现公钥/私钥加密?

如果这是不可能的,我会对另一个包含AES和公钥加密技术的库的建议感兴趣 - 但我知道这是我可以研究自己的东西!所以主要我很想知道我开始使用的图书馆是否可以满足我的所有需求,或者我是否需要寻找替代方案。

+3

一般只生成公钥/私钥对是没有多大用处的。问题是你需要建立对公钥的信任。这个问题非常接近于脱离主题,因为要求示例代码或库被认为是脱离主题(显示你已经尝试过自己,你的搜索引擎和我们一样好)。 –

+0

相关文章:http://blogs.msdn.com/b/ericlippert/archive/2011/09/27/keep-it-secret-keep-it-safe.aspx – ntoskrnl

回答

-3

根据Symmetric Cryptography in Javascript,没有提及公钥密码术。所以它似乎不被支持。

可能有一些分裂的解决方案可用,但我不知道任何关闭我的头顶。 Github似乎有一些选择:javascript public key crypto site:github.com

WebCrypto Working Group正在解决此问题。它将提供配置,密钥生成,密钥存储和一些公钥操作,如sealsign。第一次修订版本是而不是有丰富的Diffie-Hellman或BigIntger等原始版本。例如参见Question on BigInteger operations

+0

引用我在别处读到的内容:[您的回答在另一座城堡中:何时回答不是答案?](https://meta.stackexchange。(https:// meta。com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer)和[仅链接回答不好的练习? stackexchange.com/questions/65277/are-link-only-answers-poor-practice) –

7

事实上,使用ECC模块可以实现私有/公共加密。如果您是专业人士,您可以在http://bitwiseshiftleft.github.io/sjcl/doc/上查看api文档。

如果你想要它如何做一个例子,你可以通过

http://justinthomas.pro/crypto/test.html http://justinthomas.pro/crypto/库网址

这里你可以看到在行动SJCL ECC实现(包括密钥生成)

这也许有帮助 https://github.com/bitwiseshiftleft/sjcl/issues/134

PS椭圆曲线密码学(ECC)是基于有限域上的椭圆曲线的代数结构的公钥密码学的一种方法。 256位ECC公钥应为3072位的RSA公钥提供类似的安全 http://en.wikipedia.org/wiki/Elliptic_curve_cryptography

+0

“justinthomas.pro”的链接现已停止。 – Amy