申明: 文章为转载 原文地址原文 RSA是一种非对称加密算法 非对称加密需要公钥(publickey)和私钥(privatekey) 消息传递前需要先生成公钥和私钥,发送方将待发送消息用公钥加密,发送给接收方。接收方收到消息后,用私钥解密。在这个过程中,公钥负责加密,私钥负责解密,消息在传输过程中即使被截获,攻击者由于没有私钥,无法破解截获的消息。 非对称加密算法的加解密速度低于对称加密算法,但是安全性更高。 非对称加密算法:RSA、DSA、ECC等算法 RSA加密解密过程: import rsa # rsa...

阅读全文>>

两种方式实现 1 使用最后时间判断 class Throttle(MiddlewareMixin): VIEW_LIMIT = {} def process_request(self,requst): # 限制访问次数 # 1分钟内只允许访问3次 remote_addr = requst.META['REMOTE_ADDR'] print(self.VIEW_LIMIT) if remote_addr not in self.VIEW_LIMIT: ...

阅读全文>>

测试代码: models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的 models.Tb1.objects.f...

阅读全文>>

常用的查询操作 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对...

阅读全文>>

0x01 错误原因 python manage.py makemigrations 报错提示: AttributeError: 'str' object has no attribute 'decode' 0x02 解决 直接定位到报错文件 C:\python38\Lib\site-packages\django\db\backends\mysql\operations.py 修改源码: # 头部导入 from django.utils.encoding import force_text # 报错的位置更改 q...

阅读全文>>

Django的安装 注意安装LTS版本 安装 pip install Django==2.2(卸载django:pip uninstall django) 创建第一个Django项目 命令行创建 django-admin startproject 项目名 PyCharm File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本 在...

阅读全文>>

0x01接收路径 函数式的路径判断 截取请求路径的扩展功能 0x02 代码 """ 使用socket 搭建一个简单的web服务端 函数进阶版 """ import time import socket sk = socket.socket() sk.bind(('127.0.0.1', 8080)) sk.listen() def yingying(url): data = 'ni fang wen de shi: {}'.format(url) return bytes(data, encoding='utf8') ...

阅读全文>>

0x01 需求 功能说明: 监听9090端口 解析html文件 支持http协议 0x02 代码实现 import socket sk = socket.socket() sk.bind(("127.0.0.1",9090)) sk.listen() #sk.accept() while True: conn,addr = sk.accept() data = conn.recv(1024) print(data) #http协议输出 ...

阅读全文>>

0x01 server import select import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() del_l = [] rlist = [sk]# 是用来让select帮忙监听的 所有 接口 # select:windows/linux是监听事件有没有数据到来 # poll: linux 也可以做select的工作 # epoll: linux 也可以做类似的工作 while 1: r,w,x = select.select(rlist,[]...

阅读全文>>