前端使用vue + ElementUi 后端使用 Flask, 登录时 用户名的加密解密。
vue前端:
npm安装CryptoJS:
npm install crypto-js --save
js 引用:
import CryptoJS from 'crypto-js/crypto-js'
加密函数:
const KEY = "QQAZSESZWSDEFRTGYHUJBGVF"; // 此key需与后端一致
function enDES3(str) {
const encrypt = CryptoJS.TripleDES.encrypt(str, CryptoJS.enc.Utf8.parse(KEY), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypt.toString();
}
登录时可调用加密
let password = enDES3(userInfo.password);
let username = enDES3(userInfo.username);
Flask后端接收,解密
Flask requirements.txt 中添加 pyDes,安装
pyDes==2.0.1
或者直接在 python环境 / virtualenv 中安装 pip / pip3 install pyDes==2.0.1
解密函数:
def decrypt(text):
"""
解密,其中 key值需要与前端key值一致
:param text:
:return:
"""
key = "QQAZSESZASIAINFOASIAINFO"
cryptor = pyDes.triple_des(key, padmode=pyDes.PAD_PKCS5)
x = base64.standard_b64decode(text.encode())
x = cryptor.decrypt(x)
return x.decode()