我有一个前端为 HTML、Javascript 和后端为 Java 的应用程序,我需要使用 RSA 发送密码和敏感信息。我在javascript中使用JSEncrpt,在java中使用Bouncy castle。 我需要知道如何管理密钥。如果我在 javascript 中动态创建密钥,我如何将私钥发送到我的后端,反之亦然。我的 javascript 代码对用户可见,在 javascript 中存储私钥不是一种选择。
Javascript代码:
var text = "Hello World";
var privkey="MIICdQIB..........";
var pubkey="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvFZQtGLPQKV0h....";
var encrypt = new JSEncrypt();
encrypt.setPublicKey(pubkey);
var ciphertext = encrypt.encrypt(text);
console.log("ciphertext : " + base64ToHex(ciphertext));
var decrypt = new JSEncrypt();
decrypt.setPrivateKey(privkey);
var plaintext = decrypt.decrypt(hexToBase64(cipher));
console.log("plaintext : " + plaintext);
对于 java 代码,请参见以下示例:http ://www.mysamplecode.com/2011/08/java-rsa-encrypt-string-using-bouncy.html