在开发中,前端经常需要把一些数据存储到浏览器中,有一些敏感数据,例如权限数据可能会受到用户的篡改,我们可以经过一些简单的加密后,存储到浏览器中,使用的时候再进行解密
需要使用的第三方库
数据加密
const data = {_id: "643e50cb9ec447c90e41d51f", account: "admin", realName: "管理员", sector: "2"};//用于加密的初始数据
const key = 'my-secret-key'; // 用于加密和解密数据的密钥
const encryptedData = CryptoJS.AES.encrypt(JSON.stringify(data), key).toString();//加密
// 将加密后的数据存储在 localStorage 中
localStorage.setItem('encryptedData', encryptedData);
解密数据
const key = 'my-secret-key'; // 用于加密和解密数据的密钥
const encryptedData = localStorage.getItem('encryptedData');// 从 localStorage 中获取加密后的数据
const decryptedData = CryptoJS.AES.decrypt(encryptedData, key).toString(CryptoJS.enc.Utf8);// 解密数据
const data = JSON.parse(decryptedData);// 将解密后的数据转换为 JavaScript 对象
console.log(data);// 输出解密后的数据
解密后可以将数据放到redux或vuex中,之后直接使用就好
如果加密后的数据受到篡改,将可能引起报错,我们可以再进行一些处理
try {
const decryptedData = CryptoJS.AES.decrypt(encryptedData, key).toString(CryptoJS.enc.Utf8);
const data = JSON.parse(decryptedData);
// 处理解密后的数据
} catch (error) {
console.error('解密数据时出现错误:', error.message);
// 此处可以进行操作,比如提示用户请勿篡改信息,或清空浏览器数据后退出登录
}