介绍一下js当中常用的两种加密方法
- MD5加密(不可解密)
- RSA加密(可解密)
一、MD5加密
MD5不能解密,只能把数据进行相同的MD5处理之后跟之前的加密串进行对比
常用使用场景:注册帐号时,输入的密码通过MD5加密传输
1、npm安装
npm install blueimp-md5 -S
2、使用
// 加密value字符串,结果"2063c1608d6e0baf80249c42e2be5804"
var md5Value=md5('value')
二、RSA加密
使用时都是使用公匙加密,私匙解密,公匙可以公开,私匙自己保留
常用使用场景:用户输入的支付密码加密
1、CND安装引入或直接源码下载
https://cdn.bootcss.com/jsencrypt/3.0.0-beta.1/jsencrypt.js
2、使用
通过openssl生成公钥
openssl genrsa -out rsa_1024_priv.pem 1024
再用生成的公钥去生成私钥
openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
使用
var crypt = new JSEncrypt();
// 设置公钥
crypt.setKey(__YOUR_OPENSSL_PUBLIC_KEY__);
var text = 'test';
// 通过公钥加密字符串
var enc = crypt.encrypt(text);
// 设置私钥
decrypt.setPrivateKey(__YOUR_OPENSSL_PRIVATE_KEY__);
//使用私钥解密
var dec = decrypt.decrypt(enc);
// Now a simple check to see if the round-trip worked.
if (dec === text){
alert('解密成功');
} else {
alert('解密失败');
}
觉得效果不错的请帮忙加个关注点个赞,每天分享前端实用开发技巧