请用js实现RSA加解密
时间: 2024-01-03 09:48:58 浏览: 81
RSA是一种非对称加密算法,它需要两个密钥,一个公钥和一个私钥。在加密时使用公钥加密数据,在解密时使用私钥解密数据。下面是用JavaScript实现RSA加解密的示例代码:
```javascript
// 生成 RSA 公钥和私钥
function generateRSAKeyPair() {
const rsa = new RSAKey();
rsa.generate(2048, "10001");
return {
publicKey: rsa.getPublicBase64(),
privateKey: rsa.getPrivateBase64(),
};
}
// 加密数据
function encryptRSA(publicKey, data) {
const rsa = new RSAKey();
rsa.setPublicString(publicKey);
return rsa.encrypt(data);
}
// 解密数据
function decryptRSA(privateKey, encryptedData) {
const rsa = new RSAKey();
rsa.setPrivateString(privateKey);
return rsa.decrypt(encryptedData);
}
```
其中,`generateRSAKeyPair`函数用于生成RSA公钥和私钥,返回一个包含公钥和私钥的对象。`encryptRSA`函数用于使用公钥加密数据,需要传入公钥和要加密的数据。`decryptRSA`函数用于使用私钥解密数据,需要传入私钥和要解密的数据。
注意:上述代码中使用了一个第三方库 `jsbn` 来实现RSA加解密算法,需要在代码中引入该库。
阅读全文