蜂考《数据结构》笔记
P1 数据结构与算法 1. 数据结构基础概念 1.1 基本术语定义 术语 定义 类比说明 数据 对客观事物的一种符号表示(图像、声音等) 日常生活中各种信息的载体 数据元素 数据的基本单位 学生表中的每一条学生记录 数据项 构成数据元素不可分割的最小单位 学号、姓名、性别 数据对象 具有相同性质的数据元素的集合 全班学生的集合 数据结构 相互之间存在一种或多种特定关系的数据元素的集合 由逻辑关系组织起来的数据 1.2 数据结构的二元组表示 数据结构一般定义为二元组形式: Data_Structure=(D,S)Data\_Structure = (D, S) Data_Structure=(D,S) D (Data):数据元素的有限集 S (Structure):数据关系的有限集 R 的含义:在有些表示中使用 R 表示数据关系,即 R 是数据关系的有限集 1.3 数据结构的三要素 数据结构由三部分组成: 逻辑结构:数据元素之间的逻辑关系 存储结构(物理结构):数据结构在计算机中的表示 数据的运算:对数据进行的操作 2. 逻辑结构 ...
使用Diskpart为你的U盘添加只读保护
Diskpart是一个强大的命令行磁盘管理工具。在Windows 2000和之后的Windows操作系统包含该工具。它替代了fdisk。 这个命令在ReactOS中也可以使用。 在使用 diskpart 命令之前,必须先列出一个对象,然后选择一个对象以使其处于焦点状态。 对象具有焦点后,键入的任何 diskpart 命令都将对该对象执行 一、进入diskpart 在使用diskpart命令行工具前,必须先执行diskpart以进入diskpart模式。 1234567891011Microsoft Windows [版本 10.0.19044.6575](c) Microsoft Corporation。保留所有权利。C:\Users\Administrator>diskpartMicrosoft DiskPart 版本 10.0.19041.3636Copyright (C) Microsoft Corporation.在计算机上: DESKTOP-01PTJNVDISKPART> 二、选择磁盘 一、运行列表磁盘以查看可用磁盘 1list disk 12345678...
在不同版本的Linux中安装信任根证书CA
前提 首先,您必须拥有一个自己的信任根证书或者中间证书 Debian/Ubuntu 一、从更新源下载安装CA证书包 1sudo apt install -y ca-certificates 二、手动导入您的根证书 将您的证书文件上传至系统证书目录/usr/local/share/ca-certificates/ 执行以下命令更新证书信息 1sudo update-ca-certificates 系统会自动将新证书合并到系统根证书文件/etc/ssl/certs/ca-certificates.crt中。 验证证书是否生效。 使用 openssl 验证: 12#使用以下命令检查证书文件是否在信任库中。将 your-certificate.crt 替换为您的根证书文件名。openssl verify /usr/local/share/ca-certificates/your-certificate.crt 如果输出是 /usr/local/share/ca-certificates/your-certificate.crt: OK,则表示验证成功。 检查符号链接:...
彻底解决Ubuntu的经典DNS之127.0.0.53问题,让你的服务永不停机!
摘要 在 Ubuntu 系统中,默认的 DNS 设置会导致服务器会将 DNS 不间断的设置为127.0.0.53。 在一些情况下,如果您不对其做出迅速反应,将会导致所有 DNS 解析请求均失败,导致服务器无法访问外网,对于需要高稳定性且较为依赖 DNS 的服务,无异于灭顶之灾。 本文将对该问题进行研究,并提出一种解决该问题的方法 关键词: Linux ; Ubuntu ; DNS Ubuntu 默认 DNS 策略概述 在 Ubuntu 中,DNS 由systemd-resolved服务管辖,其默认配置会在 127.0.0.53:53 上运行一个 DNS 存根监听器,以便本地应用程序可以将解析请求发送给它。这意味着当系统尝试解析域名时,它会首先向这个地址发送请求。 systemd-resolved服务会尝试解析这些请求,如果它自己的缓存中没有相应的记录,它会进一步向配置的上游 DNS 服务器查询。 由于Ubuntu 的 DNS 设计存在显著问题,这一默认策略可能导致 DNS 解析失败导致无法访问外网的后果。因此为了保证服务的稳定性,禁用其是必要的 禁用 DNS 存根监听器 在前...
保姆级Matrix+Synapse部署教程,支持端到端加密,部署一个独属于自己的去中心化在线加密匿名聊天室!
什么是Matrix Martix是完全开源免费的通信协议 Martix是用于安全实时通信的去中心化端到端加密通信协议,可以保护您的隐私和通信自由。 Martix通过端到端加密来保护您的通信安全,可确保消息在发送方和接收方之间加密,中间服务器无法访问消息内容。Matrix 采用了分散式架构,没有单一的中央服务器,而是由多个独立的服务器通过联邦组成网络。 Martix支持去中心化端到端加密通信、WebRTC语音,视频通话、消息已读,输入状态提示、群组聊天等。 环境依赖 安装Matrix前请确保你的系统环境符合以下要求 操作系统:Linux CPU 指令架构:x86_64, arm64 CPU 指令架构:x86_64 架构需要支持 ssse3 指令集 软件依赖:Docker 20.10.14 版本以上 软件依赖:Docker Compose 2.0.0 版本以上 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘 可以根据以下命令来查看相关信息 12345678uname -m # 查看指令架构...
使用AllinSSL实现自动续签雷池WAF的SSL证书
前言 什么是AllinSSL? AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。 什么是雷池WAF? 雷池WAF是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。 雷池通过反向代理,过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、XSS、 代码注入、命令注入、CRLF 注入、ldap 注入、xpath 注入、RCE、XXE、SSRF、路径遍历、后门、暴力破解、CC、爬虫 等攻击。 安装AllinSSL 使用二进制安装命令 (推荐) 1curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl 备用安装命令 1curl -sSO https://cnb.cool/allinssl/install.sh/-/gi...
雷池WAF-LTS版本安装教程
雷池WAF是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击,通过反向代理,过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。本文旨在指导您完成雷池LTS版本的部署。 环境依赖 安装雷池前请确保你的系统环境符合以下要求 操作系统:Linux CPU 指令架构:x86_64, arm64 CPU 指令架构:x86_64 架构需要支持 ssse3 指令集 软件依赖:Docker 20.10.14 版本以上 软件依赖:Docker Compose 2.0.0 版本以上 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘 可以根据以下命令来查看相关信息 12345678uname -m # 查看指令架构cat /proc/cpuinfo| grep "processor" # 查看 CPU 信息lscpu | grep ssse3 # 确认 C...
给自己的服务器自签SSL/TLS证书用于内网通信
在本文章中,我们将学习自签使用EC384-SHA384加密协议的SSL证书 第一步 创建CA私钥 1openssl ecparam -genkey -name secp384r1 -out ca.key 第二步 删除私钥中的部分内容 1234# 删去这段内容-----BEGIN EC PARAMETERS-----BgXXXXXXX==-----END EC PARAMETERS----- 第三步 生成CA公钥 12openssl req -x509 -new -key ca.key -out ca.crt -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrganization/OU=IT Department/CN=My Root CA" 参数说明(按需修改): 除了CA标识以外,其他都可以不填,除非你有特定需求! C:国家代码(如CN/US) ST:省份 L:城市 O:组织名称 OU:部门名称 CN:CA标识 第四步 生成服务器端私钥 1openssl ecparam -genkey -name s...
利用CDN自定义请求报头功能实现源站精确获得访客ip
提要 本文适用情况: 用户第一层访问的是CDN,代理链路可信不会修改你的自定义请求头。 本文使用的CDN系统是FlexCDN,若你的CDN使用的是其他系统可能不通用,请自行寻找请求变量 按照本文教程配置成功后可以实现“一头走天下”:只要代理链路不对自定义头修改,任何代理链路和源站都可以直接读取这个头获得访客ip,而不需要繁琐的配置XFF 不想看长文的直接跳转到正片 最近我看到有些同学们配XFF出现了很多问题,依照我早期摸索出的经验,写下这篇文章。 基础知识 什么是HTTP请求体 HTTP请求体由三部分组成:请求行、请求头、报文体。 这是一个正常的的HTTP请求 其中,第一行的①、②、③统称为请求行;报文头也称为请求头 可以看到,一个正常的HTTP请求带有这些参数,接下来我将通过访问哔哩哔哩网站并抓包来详细讲解。 在这个请求体示例中,由于是用的GET方法进行请求,GET请求方法是指:向服务器发出请求,意图从服务器下载东西。因此不含有报文体。 可以看到,在我访问哔哩哔哩的请求头中,我使用HTTP/1.1协议通过GET方法向服务器发出请求;在User-Agent栏,也就是我们...
Ubuntu一步到位改语言、时区、更新源、DNS
改语言 1apt install language-pack-zh-hans -y && locale-gen zh_CN.UTF-8 && update-locale LANG=zh_CN.UTF-8 改时区 1timedatectl set-timezone Asia/Shanghai 改更新源 修改/etc/apt/sources.list 具体内容参照镜像源文档,推荐使用清华大学源和中科大源 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror Ubuntu - USTC Mirror Help 改DNS 打开/etc/resolv.conf 全部删除然后写入: 12nameserver 119.29.29.29nameserver 223.5.5.5 推荐的DNS如下: DNS服务商 地址 地域 评价 腾讯云(DNSPod) 119.29.29.29 广东省 广州市 推荐,感觉比阿里的好一些海外可以使用 阿里云 223.5.5.5 浙江省 杭州市 比较...