摘要: Python装饰器是一种语法糖,用于在不改变原有函数代码的情况下,为函数添加额外的功能。装饰器本质上是一个函数,它接收一个函数作为参数,并返回一个新的函数,通常使用@语法糖来应用装饰器。 1.装饰器本质是一个函数,可称之为函数装饰器; 2.装饰器也是一个闭包,即在非全局范围内定义的函数可以引用其外围空间中的变量; 3.装饰器以一个函数作为参数,并且返回值也是一个函数; 4.装饰器不能修改被装饰的函数代码;不能修改被装饰函数的调用方式; 阅读全文
posted @ 2023-10-09 21:17 煊奕 阅读(779) 评论(0) 推荐(2) 编辑
摘要: 肯取势者可为人先,能谋势者必有所成 三次握手 1.注意状态的变化:有ClOSED、LISTEN、SYN-SEND、SYN-RECV及ESTABLISHED状态 2.存在SYN报文和ACK报文,seq的值由各端自己确认,ack的值是对方的seq+1(表示想接收到对方下一个数据的第一个字节的序号是 se 阅读全文
posted @ 2022-08-14 17:12 煊奕 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 肯取势者可为人先,能谋势者必有所成 跳表说明 1.跳表是一种随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树、AVL 树不相上下,但是跳表的原理非常简单,目前在 Redis 和 LevelDB 中都有用到。 2.跳表的期望空间复杂度为 O(n),跳表的查询,插入和删除操作的期望时间复 阅读全文
posted @ 2022-07-28 22:34 煊奕 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 是非审之于己,毁誉听之于人,得失安之于数 背景 最近在看微服务认证及鉴权的设计方案,在了解了token的相关存储及技术之后(session、cookie、jwt等),发现token安全也是非常关键的一个方面。本以为对于XSS、CSRF这种常见安全问题已经足够熟悉,结果发现依然是一知半解,完全是没有理 阅读全文
posted @ 2022-07-28 22:11 煊奕 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 那曾经使我悲伤过的一切,也是我最热爱过的一切。 #1 解决方法 4094是gunicorn的默认GET请求长度限制,报 Request Line is too large (xxxx > 4094) 可先确认是否为gunicorn配置问题。通过以下命令查看gunicorn相关配置参数: gunico 阅读全文
posted @ 2021-12-20 16:39 煊奕 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 在自己的世界里独善其身, 在别人的世界里顺其自然。 删除远程分支 # 方法一: git push origin --delete branchName #方法二:推送一个空分支到远程分支,其实就相当于删除远程分支 git push origin :branchName 查看本地分支与远程分支关联情况 阅读全文
posted @ 2021-12-13 23:13 煊奕 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一辈子很长,请一定要和能让你笑的人在一起。 #1 linux输出重定向 $ command > file 2>&1 $ command >> file 2>&1 这里的**&**没有固定的意思 放在**>后面的&,表示重定向的目标不是一个文件**,而是一个文件描述符,内置的文件描述符如下 1 => 阅读全文
posted @ 2021-12-13 22:57 煊奕 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 你要去相信,没有到不了的明天。 摘要 本文主要描述DjangoRestFramework的相关内容,额外提及部分涉及到的其他知识。 简介 1.Django REST framework 框架是一个用于构建Web API的强大而又灵活的工具。通常简称为DRF框架 或 REST framework,DR 阅读全文
posted @ 2021-12-13 19:16 煊奕 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一杯敬故乡,一杯敬远方。 算法分析 1.仿射密码结合了移位密码和乘数密码的特点,是移位密码和乘数密码的组合。 2.仿射密码的加密算法就是一个线性变化,即对明文字符x,对应的密文字符为y=ax+b(mod26) 其中,a, b属于Z26且gcd(a,b)=1 3.实现过程: 选取a,b两个参数,其中g 阅读全文
posted @ 2021-12-12 18:15 煊奕 阅读(2612) 评论(0) 推荐(1) 编辑
摘要: 一杯敬朝阳,一杯敬月光。 算法分析 A5算法已被应用于GSM通信系统中,用于加密从手机到基站的连接,以保护语音通信。一个GSM语言消息被转换成一系列的帧,每帧长228位,每帧用A5进行加密。 A5算法主要由三个长度不同的线性移位寄存器组成,即A, B, C。其中A有19位,B有22位,C有23位。 阅读全文
posted @ 2021-12-12 18:14 煊奕 阅读(353) 评论(0) 推荐(0) 编辑