介绍一下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('解密失败'); | |
} |
觉得效果不错的请帮忙加个关注点个赞,每天分享前端实用开发技巧