有你在真好 的个人博客
前端开发-JavaScript数据加密处理
阅读:2180 添加日期:2021/3/27 23:16:21 原文链接:https://www.toutiao.com/item/6929499640043913735/

介绍一下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('解密失败');
}

觉得效果不错的请帮忙加个关注点个赞,每天分享前端实用开发技巧

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号