RSA
RSA加密拥有公钥与密钥,其中密钥是根据公钥来决定的。
对称性加密是采用了对称密码编码,算法是加密与解密使用了相同的密钥加密,RSA公钥与私钥是不同的,是非对称性加密算法。
公钥与密钥的生成方法
Mac生成公钥与私钥
Mac一般自带openssl,没有先进行安装。
$ sudo apt-get install openssl
1.新建一文件夹用来存放公钥私钥
2.进入文件夹,生成私钥
$ openssl genrsa -out rsa_private_key.pem 1024
此时会提示输入密码。
私钥文件名:rsa_private_key.pem
3.通过私钥提取公钥
$ openssl rsa -in private.key -pubout -out pub.key
公钥文件名:rsa_public_key.pem
加密与解密
加密
require('jsencrypt')
function encrypt(message,publicKey){
var encrypt=new JSEncrypt();
encrypt.setPublicKey(publicKey); // publicKey为公钥
const txt = encrypt.encrypt(message);
return txt;
}
解密
node RSA解密方法
const crypto = require("crypto");
function decrypt(encryptTxt,privateK) {
const priKey = crypto.Utils.pemPriKey(privateK, crypto.Utils.PKCS1); // privateK为私钥
const decryptText = cryptoAsymmetric.privateDecrypt(priKey, encryptTxt, { input: 'base64' }).toString();
return decryptText;
}
}
js RSA解密方法
require('jsencrypt')
function decrypt(encryptTxt,privateK){
var encrypt=new JSEncrypt();
encrypt.setPrivateKey(privateK);
encrypt.decrypt(encryptTxt);
return txt;
}
By:Yl