如何在SJCL中实现公钥/私钥加密?

wai*_*ray 8 javascript cryptography rsa aes sjcl

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

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

edo*_*bhi 7

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

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

http://justinthomas.pro/crypto/test.html http://justinthomas.pro/crypto/ repository url

您可以在此处查看SJCL ECC实施(包括密钥生成)

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

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


jww*_*jww -4

根据JavaScript 中的对称密码学,没有提到公钥密码学。所以看来不支持。

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

WebCrypto工作组目前正在解决这个问题。它将具有配置、密钥生成、密钥存储和一些公钥操作,例如sealsign。第一个修订版不会提供丰富的 Diffie-Hellman 或像 BigIntger 这样的原语。例如,请参阅有关 BigInteger 运算的问题