-
MD5加密(无解密方法,解密不可逆)
适用场景:
用户注册完成后,将加密后的密码发送给后端,后端将加密后的密码存储在数据库中,当用户登录时,前端依然发送加密后的密码,后台对比数据库中存储的密码和前端发送的密码。
安装依赖:
npm install crypto --save
使用方法:
import crypto from 'crypto' //引入依赖 //使用示例 let password = '123456' const md5 = crypto.createHash('md5') md5.update(password) let md5password = md5.digest('hex') //md5password为加密后的内容,可直接传递给后端
-
AES加解密
适用场景:
网站注册时,如果注册过程分两步进行,第一步校验手机号,校验通过后,跳转到其他界面,填写其他注册信息,完成注册。如果第三方通过伪造返回信息,可以欺骗前端,非法注册如果要解决非法注册的问题,那么需要前后端双重校验,前后端都需要涉及到加密和解密,所以可以使用AES加解密。
安装依赖:
npm install crypto-js
使用方法:
新建
CryptoJS.js
文件,并添加以下内容//封装加解密方法 import CryptoJS from "crypto-js"; /** * * 第一个参数word是待加密或者解密的字符串; * 第二个参数keyStr是aes加密需要用到的16位字符串的key,keyStr 的长度要不小于14位,否则解密时会显示空白; * * 如果想对一个js对象加密,需要先把该对象转成json字符串。 */ export default { // 加密 encrypt(word, keyStr) { keyStr = keyStr ? keyStr : "21ssadad23223123dsaddas"; let key = CryptoJS.enc.Utf8.parse(keyStr); let srcs = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); }, // 解密 decrypt(word, keyStr) { keyStr = keyStr ? keyStr : "21ssadad23223123dsaddas"; var key = CryptoJS.enc.Utf8.parse(keyStr); var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return CryptoJS.enc.Utf8.stringify(decrypt).toString(); } };
引用
CryptoJS.js
文件,实现加解密import CryptoJS from './xx/CryptoJS' // ... let a = CryptoJS.encrypt("asdfg123456") //使用默认密钥加密asdfg123456 let b = CryptoJS.decrypt(a) console.log(a); //加密后数据 console.log(b); //解密后数据
前端常用加密算法
最新推荐文章于 2024-08-12 17:20:59 发布