Django —— 加密

Django —— 加密

今天介绍一下 django当中的加密手段

1.md5加密

# 加密
import hashlib
def md5(raw):
    # md5加密实例化
    md5 = hashlib.md5()
    # 需要的话进行utf8编码
    md5.update(raw.encode('utf8'))
    return md5.hexdigest()

2 . sha256加密

import hashlib
import random
import re
# 封装sha256
def sha56(raw):
    # 实例化sha256对象
    sha56 = hashlib.sha256()
    # 把要加密的密码,进行update操作并转成utf-8,不写默认是utf-8
    sha56.update(raw.encode('utf-8'))
    # 返回一个sha56的16进制的格式
    return sha56.hexdigest()



# 加盐,随机盐
def random_safe(n=5):
    # 定义一个简单的字符串
    str = '23456789abcdefgjkmnpqrestuvwxyz'
    # 定义一个空值,将每次循环的随机数,拼接到ret上。然后返回。
    ret = ''
    for i in range(n):
        # len出字符串的长度,利用下标进行随机抽出。
        ret += str[random.randint(0,30)]
    return ret


# 正则验证邮箱
def check_email(email):
    ret = re.match(r'(\w+)@(\w+)\.(\w){2,}$',email)
    if ret:
        # 满足条件
        return True
    else:
        # 不满足条件
        return False

# 正则验证密码
def check_passwd(password):
    pattern = re.match("^(?=.*[a-zA-Z].*)(?=.*[\d].*)(?=.*_.*).{6}$",password)
    if pattern:
        return True
    else:
        return False

3. 时间戳封装

import random
from datetime import datetime
def generater_img(ext='pag'):
    # 格式化时间+随机数+文件的后缀名
    return datetime.now().strftime('%Y%m%d%H%M%S') + str(random.randint(10000,99999)) + '.' + ext


4. 删除外键关系

Django取消级联删除----删除外键关系
user = models.ForeignKey(User,blank=True,null=True,on_delete=models.SET_NULL)
并且SET_NULL只有在null为True的时候,才可以使用

# 删除学生外键关系,根据id把相应的数据查询出来后,把外建改成None就OK了
class Pop_student(APIView):
    def get(self,request):
        mes={}
        id = request.GET.get('id')
        stu = Student.objects.filter(id=id).first()
        stu.teacher_id=None
        stu.save()
        mes['code']=200
        mes['message']='删除成功'
        return JsonResponse(mes)

以上是django当中的加密手段,希望对同学们有所帮助

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值