请问如何实现用javascript实现rsa加解密?

在网上看了Java加密技术(四)——非对称加密算法RSA,用该方法实现数据的加解密,但我们在开发web app的时候遇到问题,我们需要在客户端使用javascript来进行加密,然后在服务端用java来解密,但是我们在网上搜了很多相关的javascript的rsa开源实现(如:cryptico.js)来处理,还是解决不了,请各位高手给点建议
关注者
38
被浏览
13554

3 个回答

实现rsa并不难,很多现成的库,重点是 rsa的实现细节要保持一致。你选择的算法要和你使用的java 的rsa实现一致,才能保证加密解密没有问题。
GitHub - travist/jsencrypt: A Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
这个库,可以和java互用。
你可以试试看这个类库
RSA In JavaScript
三个文件都要引用
然后下载他的那个keygen,生成key
然后复制生成的代码到JS文件中

如果你是只要加密,留空RSAKeyPair调用的第二个参数
结果类似这样:
setMaxDigits(19);
// Put this statement in your code to create a new RSA key with these parameters
key = new RSAKeyPair(
 "16d1507964604313b5121c52c1051115",
 "",
 "70a6c76c3631387e7eaca739f7f5cbe7"
);
去掉注释然后粘贴到你的JS里。
使用:


注意:如果你是想加密传输,请毫不犹豫使用SSL。因为攻击者可以修改JS。
为什么?