前端公钥加密,后端django密钥解密

前端登陆代码实现:

<script>
    // 前台用户名密码
    let username = 'shimily',
        password = 'xlx444444'
 
    // 后台私钥
    let priKey = 'mi2019longer@12345'
 
    // 加密密码
    function encrypt(str) {
        let cipher = new JSEncrypt()
        cipher.setPublicKey(priKey)
        return cipher.encrypt(str)
    }
 
    // 登陆数据
    let data = {
        username: username,
        password: encrypt(password)
    }
 
    // 将数据发送到后端鉴权
    axios.post('/xxx', data)
        .then(res => {
            console.log(res)
        })
</script>

后端代码实现:

#安装RSA模块
pip install sanic-rsa

#解密代码
from sanic_rsa import Rsa

def decrypt(token):
    '''
    解密接口
    '''
    #私钥,用于解密
    PRI_KEY = 'mi2019longer@12345'
    
    #实例化RSA
    rsa = Rsa(PRI_KEY)
    
    #解密token中的数据
    password = rsa.decrypt(token)
    return password

#服务端的鉴权代码
@app.route('/xxx', method='POST')
def authenticate():
    #获取前端传来的登陆信息
    username = request.json.get('username')
    password = request.json.get('password')
    
    #解密密码
    token = decrypt(password)
    
    #校验账号密码
    if username == 'shimily' and token == 'xlx444444':
        return json({"code":0, "msg": "success"})

    return json({"code":1, "msg": "数据不匹配,认证失败"})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值