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

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

3 个回答

实现rsa并不难,很多现成的库,重点是 rsa的实现细节要保持一致。你选择的算法要和你使用的java 的rsa实现一致,才能保证加密解密没有问题。
GitHub - travist/jsencrypt: A Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
这个库,可以和java互用。
用linux生成密钥看此文 如何使用openssl生成RSA公钥和私钥对 - Scape1989的专栏 - 博客频道 - CSDN.NET

JS加密用这个 JSEncrypt

PHP解密示例代码如下:
$pwd = $_POST('pwd');
$privateKey = openssl_pkey_get_private('file://'.'/root/rsa_private_key.pem' );
$realPW = '';
$ok = openssl_private_decrypt(base64_decode($pwd), $realPW, $privateKey, OPENSSL_PKCS1_PADDING);
var_dump($ok);
var_dump($realPW);
为什么?