转 HTTPS的建立过程(SSL建立安全会话的过程)

本文大部分整理自网络,相关文章请见文后参考。 SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰。正文开始。 1.SSL/TLS概览 1.1 整体结构 SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下: SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

SQL Server的GO语句

https://www.cnblogs.com/cbattle/p/8784537.html
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

Vue路由以及前后端交互

路由跳转 this.$router.push('/course'); //这个是用来管理路由跳转的,可以直接写后缀 this.$router.push({name: course}); // 也可以写字典 是用来管理路由前进后退 this.$router.go(-1);后退 this.$router.go(1);前进 <router-link to="/course">课程页</router-link> <router-link :to="{name: 'course'}">
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

python生成图片二维码(利用pillow)

首先 pip install pillow 然后 from PIL import Image from PIL import ImageDraw from PIL import ImageFont import random class ValidCodeImg: def __init__(self, width=175, height=40, code_count=6, font_size=28, point_count=20, line_count=3,
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

Django之ORM操作.md

1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。 类对象--->sql--->pymysql--->mysql服务端--->磁盘,orm其实就是将类对象的语法翻译成sql语句的一个引擎 2.字段,类型 常用字段 AutoField 自增的整形字段,必填参数p
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

前端随心记---------Vue3.0马上就要来了,TypeScript学会了没?

大家都知道Vue的作者是 尤 雨 溪,而像尤雨溪这种神级的开发者可能真的具有想改变世界的想法。而有的小伙伴可能要想:神也是人,改变世界也需要钱啊!而Vue既然是一款免费的框架,那它又是如何盈利的呢?首先Vue的发展很顺畅,其用户也非常活跃,并且也为众多的开发者创造了价值!大家可以假设一下:如果有一万个人在使用其框架,其中百分之一的人愿意每月给予作者10美元的赞助,其生存应该不会有太大问题。而Vue的用户何止一万人! 任何一个框架的诞生与生存都是有其道理的,而要在众多框架的竞争中求得发展并脱颖而
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

关闭Chrome浏览器的广告

生活没有绝对的对与错;代码就不一样了,错了就编译不过,也正是因为这样,编程的人思维有时也会陷入一种狭隘中,这就是把工作和生活没有分开。Win10 右下角的广告就像程序调试中的"警告",虽然一般不影响结果,但就是看着不爽。 不要广告 打开Chrome浏览器设置>高级>网站设置>通知 或者直接地址栏中输入:chrome://settings/content/notifications?search=%E9%80%9A%E7%9F%A5 在"允许"所有广告网址即可。
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

web常用自动化库——selenium总结

概述 selenium是一个模拟控制浏览器操作的自动化库,它可以做到元素定位,鼠标事件,浏览器事件,js脚本执行等操作 与request不同的是,request是单独请求一个http,而selenium则是以浏览器方式加载整个页面流,所以那些异步的请求也不用像request一样去分析接口,一切都像浏览器一样,所见即所得。 优点是: 1.所见即所得,不用考虑cookie,ajax,重定向等等,方便数据的查取 2.平时在我们在浏览器上做的操作(鼠标,浏览器操作等),基本都可以用这个实现,并且步骤动
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

希尔排序,直接插入排序

希尔排序可以说是对插入排序的一种优化,时间复杂度 nlgn, public static void sort(int a[]) { for(int mid=a.length/2;mid>0;mid/=2) //mid表示增量的大小,每一次整除与2 //假如mid=1,则就是普通的直接插入排序,即从第二个元素开始对前面所有进行比较后 插入指定位置 for(int i=mid;i<a.length;i++)//分组 {
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

java函数参数默认值

Java与C++不同不支持方法中的参数带默认值,但是可以通过重载、可变参数来实现该功能 方法一:重载    public class Test{ /** * @param args */ public String getName(String firstName,String secondName){ return firstName+"."+secondName; } publ
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

剑指offer——16二进制中1的个数

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。    有可能引起死循环解法:   每次判断最右端是不是1【与 & 1即可】,是就cnt++,然后右移一位,直到num为0,结束;   但是这只对正数有用,而负数右移是左端补充1,这样导致num最终成为 0xFFFFFFFF,从而右移成了死循环。    1 class Solution01 { 2 public: 3 int NumberOf1(int n) { 4 int cnt
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

C# yield checked,unchecked lock语句(C#学习笔记04)

特殊语句 yield语句 yield用于终止迭代 只能使用在返回类型必须为 IEnumerable、IEnumerable<T>、IEnumerator 或 IEnumerator<T>的方法、运算符、get访问器中 using System; namespace statement { class Program { static System.Collections.Generic.IEnumerable<int> Range(int from,
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

Buuctf-Youngter-drive

https://www.cnblogs.com/harmonica11/p/11365831.html
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

Docker学习笔记--传送门(持续更新)

1、ubuntu下安装docker: https://www.cnblogs.com/salmonLeeson/p/11609699.html 2、为docker配置国内镜像加速器:https://www.cnblogs.com/salmonLeeson/p/11610139.html 3、docker下载镜像并运行容器:https://www.cnblogs.com/salmonLeeson/p/11650837.html
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

USACO1.6 Healthy Holsteins【dfs/bfs 爆搜】

题目传送门 饲料种数只有15 枚举每种选或不选一共也就只有$2^{15}=32768$ 爆搜可过 觉得bfs要快一些? 但是dfs更方便处理字典序 只需要顺序遍历并且先搞选它的情况就可以了 而且在这种规模的数据下我们也不需要它跑得很快对吧(笑) 1 /* 2 ID: Starry21 3 LANG: C++ 4 TASK: holstein 5 */ 6 #include<iostream> 7 #include<string>
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

又到教师节

9月10日是教师节,每到这时我就回忆起学生时代,想起我的每一位老师。在这里,我祝福我的老师以及所有的老师身体健康!万事如意!   对于每一个人来说,都是从顽皮——稚童——青涩少年——风华青年壮年——老年的生命历程中走过。而老师,都是最值得我们尊重、难忘和感恩的人。   老师虽然生活清苦,却情系祖国未来,心连学子之心;他是一烛火,燃尽自己,照亮别人。教师节今天,老师们笑容最美丽,金秋和微风送来丰收的好消息。今天,老师们请休息休息,汇进歌海中,融入笑声里。鲜艳的花儿,踮起脚尖亲吻你,甜美的气息,撩
分类: 其他 发布时间: 10-11 20:40 阅读次数: 0

parted分区的步骤

使用parted分区的步骤 1. fdisk -l ##查看一下当前的存储设备,这里可以看到新加入的磁盘,比如/dev/sdb 2. parted /dev/sdb ## 进入分区命令行模式,可以随时用help来查看命令用法 3. mklabel gpt ##将MBR格式的磁盘格式化为GPT格式 4. mkpart primary 0 -1 ## 将整个磁盘化为一个分区,一般命名为/dev/sdb1 5. print ##打印分区结果 6. quit ## 退出分区命令行模式 7. mkfs.
分类: 其他 发布时间: 10-11 20:24 阅读次数: 0

内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。 线程概念的产生 传统单线程进程的缺点 现实中有很多需要并发处理的任务,如数据库的服务器端、网络服务器、大容量计算等。 传统的UNIX进程是单线程的,单线程意味着程
分类: 其他 发布时间: 10-11 20:24 阅读次数: 0

Linux关闭SELinux的方法

1 [root@localhost ~]# cat /etc/selinux/config 2 3 # This file controls the state of SELinux on the system. 4 # SELINUX= can take one of these three values: 5 # enforcing - SELinux security policy is enforced. 6 # permissive - SEL
分类: 其他 发布时间: 10-11 20:24 阅读次数: 0

linux操作系统安装运行Redis

Redis是c语言开发的。 安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到linux系统。 第二步:解压缩redis。 第三步:编译。进入redis源码目录。make 第四步:安装。make install PREFIX=/usr/local/redis PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下 连接redis     (端口号6379) 前端启动:(出现Redi
分类: 其他 发布时间: 10-11 20:24 阅读次数: 0