Django用户模块密码加密

一、使用django默认的加密方法,即哈希算法

1、注册时加密

from django.contrib.auth.hashers import make_password

user.password = make_password(password) # 明文密码经过加密处理

user.save()

2、登录验证

# 系统验证
from django.contrib.auth import authenticate

user = authenticate(username=username, password=password)

#手动验证
user.check_password(password)

二、自定义加密算法

1、md5算法

import hashlib

def calc_md5(password):
      md5_obj = hashlib.md5()
      md5_obj.update(password.encode('utf-8'))
      return md5_obj.hexdigest()

2、sha1算法

import hashlib

def calc_sha1(password):
      sha1_obj = hashlib.sha1()
      sha1_obj.update(password.encode('utf-8'))
      return sha1_obj.hexdigest()

3、 md5+salt(随机字符串)加密,防止查表法破解密码

import random
from hashlib

# 获取由4位随机大小写字母、数字组成的salt值
def create_salt(length=4):
    salt = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    len_chars = len(chars) - 1
    for index in range(length):
        salt += chars[random.randint(0, len_chars)]
    return salt

# 获取原始密码+salt的md5值
def create_md5(pwd, salt):
    md5_obj = hashlib.md5()
    pwd = pwd.encode('utf-8')
    salt = salt.encode('utf-8')
    md5_obj.update(pwd + salt)
    return md5_obj.hexdigest()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值