课程复习
文章平均质量分 72
abtgu
初识程序的菜鸟
展开
-
创建单例模式的六种方式
【代码】创建单例模式的六种方式。原创 2024-06-17 09:33:11 · 379 阅读 · 0 评论 -
LeetCode刷题笔记之图论
LeetCode刷题笔记之图论原创 2024-05-12 19:56:38 · 830 阅读 · 0 评论 -
Java表达式求值(前缀、中缀、后缀)
Java表达式求值(前缀、中缀、后缀)原创 2024-04-28 16:55:14 · 246 阅读 · 0 评论 -
LeetCode刷题笔记之hot 100(二)
LeetCode刷题笔记之hot 100(二)原创 2024-03-31 14:36:14 · 1506 阅读 · 0 评论 -
LeetCode刷题笔记之动态规划(三)
LeetCode刷题笔记之动态规划(三)原创 2024-03-26 10:08:55 · 504 阅读 · 0 评论 -
LeetCode刷题笔记之hot 100(一)
LeetCode刷题笔记之hot 100原创 2024-03-20 19:41:15 · 1119 阅读 · 0 评论 -
LeetCode刷题笔记之动态规划(二)
LeetCode刷题笔记之动态规划(二)原创 2024-03-17 18:50:35 · 459 阅读 · 0 评论 -
LeetCode刷题笔记之动态规划(一)
LeetCode刷题笔记之动态规划(一)原创 2024-03-09 19:16:57 · 546 阅读 · 0 评论 -
LeetCode刷题笔记之二叉树(四)
LeetCode刷题笔记之二叉树(四)原创 2024-03-01 20:41:55 · 1038 阅读 · 0 评论 -
LeetCode刷题笔记之回溯算法(二)
LeetCode刷题笔记之回溯算法(二)原创 2024-02-27 21:27:59 · 446 阅读 · 0 评论 -
LeetCode刷题笔记之回溯算法(一)
LeetCode刷题笔记之回溯算法原创 2024-02-26 21:35:22 · 927 阅读 · 0 评论 -
LeetCode刷题笔记之二叉树(三)
LeetCode刷题笔记之二叉树(三)原创 2024-02-23 20:35:32 · 745 阅读 · 0 评论 -
LeetCode刷题笔记之二叉树(二)
LeetCode刷题笔记之二叉树(二)原创 2024-02-20 20:10:39 · 447 阅读 · 0 评论 -
LeetCode刷题笔记之二叉树(一)
LeetCode刷题笔记之二叉树原创 2024-01-24 19:13:42 · 873 阅读 · 0 评论 -
LeetCode刷题笔记之栈与队列
LeetCode刷题笔记之栈与队列原创 2024-01-03 16:37:02 · 1105 阅读 · 0 评论 -
LeetCode刷题笔记之双指针算法
LeetCode刷题笔记之双指针算法原创 2023-12-28 09:21:46 · 1023 阅读 · 0 评论 -
LeetCode刷题笔记之字符串
LeetCode刷题笔记之字符串原创 2023-12-27 14:41:44 · 1007 阅读 · 0 评论 -
LeetCode刷题笔记之哈希表
LeetCode刷题笔记之哈希表,滑动窗口、数组排序、计数法、哈希表。原创 2023-12-21 15:14:59 · 975 阅读 · 0 评论 -
LeetCode刷题笔记之链表
LeetCode刷题笔记之链表原创 2023-12-08 17:38:46 · 521 阅读 · 0 评论 -
LeetCode刷题笔记之数组
leetcode刷题笔记之数组相关操作练习原创 2023-12-06 16:45:22 · 1152 阅读 · 0 评论 -
在Ubuntu中批量创建用户
【代码】在Ubuntu中批量创建用户。原创 2023-10-07 09:16:14 · 804 阅读 · 0 评论 -
DNS资源记录详解
1. 资源记录(resourse record)就是域名服务器保存的记录,也是解析器请求的内容,资源记录保存在zone文件中。2. 域(domain):以 www.baidu.com 为例,com是一个域。baidu.com是一个域,他是com域的一个子域,com域是他的父域。www.baidu.com 也是一个域,他是baidu.com域的子域,baidu.com域是他的父域。3. 区(zone):以baidu.com为例,badu.com是一个域,他下面含有子域fanyi.baidu.原创 2023-05-06 14:50:28 · 3099 阅读 · 0 评论 -
计算机网络中的PDU与SDU
在TCP/IP模型中,物理层的PDU是比特流(bit),数据链路层的PDU是帧(Frame),网络层的PDU是分组(Packet),传输层的PDU是段(Segment)或数据报(Datagram)。传输层的SDU加上传输层的首部信息,组成传输层的PDU,并传送到网络层,成为网络层的SDU。网络层的SDU加上网络层的首部信息,组成网络层的PDU,并传送到数据链路层,成为数据链路层的SDU。下层协议为上层协议提供服务,上层协议数据单元PDU将会成为下层的服务数据单元SDU。原创 2023-04-26 16:58:19 · 9338 阅读 · 0 评论 -
公钥基础设施PKI详解
一、概述名称:公钥基础设施(Public Key Infrastructure,PKI)。作用:通过加密技术和数字签名技术保证信息安全。组成:公钥加密技术(Public Key),数字证书(Digital Certificate)、认证中心(Certificate Authority,CA)、注册中心(Register Authority,RA)。保证了信息的机密性、完整性、不可否认性(身份认证)。应用:HTTPS(SSL)、IPSecVPN、部分远程访问VPN。二、组成详解PKI原创 2022-10-24 10:28:37 · 1563 阅读 · 0 评论 -
CTFSHOW easyrsa1-6 Writeup
easyrsa1题目: 无解题思路: 题中给了e,n,c,可以分解n得到p,q,在线分解大整数网址http://www.factordb.com/index.php 。脚本如下:import gmpy2import binasciie = 65537n = 1455925529734358105461406532259911790807347616464991065301847c = 69380371057914246192606760686152233225659503366319332原创 2020-09-17 15:51:01 · 2434 阅读 · 3 评论 -
CTFSHOW crypto0-13 Writeup
文章目录crypto0crypto2crypto3crypto4crypto5crypto6crypto7crypto8crypto9crypto10crypto11crypto12crypto13密码学签到babyrsacrypto0题目: gmbh{ifmmp_dug}解题思路: 观察,发现是凯撒加密,位移为1。crypto2题目: 无解题思路: 打开文本,发现是jjencode,直接在控制台执行即可得到flag,flag{3e858ccd79287cfe8509f15a71b4c45d}。原创 2020-09-13 15:20:33 · 3894 阅读 · 0 评论 -
随机性检测之游程总数测试
from math import *#将十六进制字符串转换为二进制列表def Convert(hexInput): bitStr = int(hexInput,16) bit = list(bin(bitStr))[2:] bit = list(map(int,bit)) return bit#读入十六进制数据txtRead = open("8KB_ra...原创 2020-04-14 09:52:39 · 1414 阅读 · 0 评论 -
python实现对整数质因数分解
python实现对整数质因数分解分解质因数的定义: 每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。方法一:def isPrime(prime): flag = True for i in range(2,prime//2): if prime%i == 0: flag = False if flag: print(prime,end=" ")原创 2020-09-09 09:45:02 · 5718 阅读 · 0 评论 -
常见公钥算法加解密公式
文章目录RSA (大整数分解)ElGamal密码 (离散对数问题)椭圆曲线上ElGamal秘密(椭圆曲线,离散对数问题)关于基础数学知识请看:https://blog.csdn.net/weixin_43790779/article/details/105621372RSA (大整数分解)密钥生成:大素数:p、q (至少为1024位 );n=p×q,φ(n)=(p−1)(q−1)...原创 2020-04-19 21:15:42 · 2877 阅读 · 1 评论 -
python实现RSA算法
import gmpy2from gmpy2 import mpzimport binasciirs = gmpy2.random_state()#生成大素数(0-2^1024位)def create_prime(): p = gmpy2.mpz_urandomb(rs,1024) #随机生成一个0~2^1024位的数 while not gmpy2....原创 2020-05-08 16:19:57 · 1394 阅读 · 0 评论 -
公钥密码所需的数学基础
完全剩余系(1) 定理1:对于给定的正整数m,有且恰有m个不同的模m的剩余类。(2) 定理2:设m是正整数,整数a满足gcd(a,m)=1,b是任意整数。若x遍历模m的一个完全剩余系,则ax+b也遍历m的一个完全剩余系。(3)定理3:设 m1,m2m_1,m_2m1,m2 是两个互素的正整数。如果x遍历m1m_1m1 的一个完全剩余系,y遍历 m2m_2m2 的一个完全剩余系,则...原创 2020-04-19 20:22:42 · 1803 阅读 · 0 评论 -
gmpy2常见函数使用
gmpy2常见函数使用1.初始化大整数import gmpy2gmpy2.mpz(909090)result:mpz(909090)2.求大整数a,b的最大公因数import gmpy2gmpy2.gcd(6,18)result:mpz(6)3.求大整数x模m的逆元yimport gmpy2#4*6 ≡ 1 mod 23gmpy2.invert(4,23)result:mpz(6)4.检验大整数是否为偶数import gmpy2gmpy2.is_even(6)原创 2020-09-08 18:01:49 · 17917 阅读 · 1 评论 -
Python实现扩展欧几里得算法求乘法逆元
Python实现扩展欧几里得算法求乘法逆元1. 扩展欧几里得算法已知整数a、b,扩展欧几里得算法可以在求得a、b的最大公约数的同时,能找到整数x、y(其中一个很可能是负数),使它们满足贝祖等式ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)如果a是负数,可以把问题转化成∣a∣(−x)+by=gcd(∣a∣,b)|a|(-x)+by=gcd(|a|,b)∣a∣(−x)+by=gcd(∣a∣,b),然后令x’=(-x)。2. 求最大公因数def gcd(a,b原创 2020-09-14 13:23:36 · 2516 阅读 · 0 评论 -
CTF中关于RSA的常见题型
CTF中关于RSA的常见题型关RSA算法原理的描述请看https://blog.csdn.net/weixin_43790779/article/details/1056223271.已知(p, q, e),求d。示例:【CTF秀-crypto4】 p=447685307 q=2037 e=17,提交flag{d}即可。解题思路:import gmpy2p = 447685307q = 2037e = 17phi = (p-1)*(q-1)d = gmpy2.invert(e,phi原创 2020-09-11 18:10:15 · 11519 阅读 · 3 评论 -
WinDbg查看notepad的导入表和kernel32导出表
一、 使用WinDbg查看notepad的导入表。查看notepad的起始地址;查看PE头的偏移。查看可选头的偏移。查看数据目录表数组的偏移。查看数据目录表;查看notepad导入表。二、 使用WinDbg查看kernel32的导出表。查看kernel32的起始地址;查看PE头的偏移。查看可选头的偏移。查看数据目录表数组的偏移。查看数据目录表;查看导出表。...原创 2021-05-16 20:27:57 · 934 阅读 · 5 评论 -
WinDbg 双机调试(调试机为Windows10系统,被调试机为Windows7系统)
一、实验环境调试机:Windows 10操作系统(我电脑上使用的系统);被调试机:Windows 7操作系统(VMware中安装的系统);调试工具:WinDbg(微软官网下载).二、配置虚拟机的管道串口安装好Windows 7 OS后先不要开机,选择【编辑虚拟机设置】,移除【打印机】(因为打印机占用了com_1端口,而我们之后要用到com_1端口)。添加【串行端口】,在配置中选择【使用命名的管道】,输入\\.\pipe\com_1 ,第一个选择【该端是服务器】,另一个选择【另一端是应用原创 2021-04-20 12:05:39 · 2257 阅读 · 0 评论 -
Wargames-bandit学习笔记
bash中“-”的用途:(1)命令的选项标志,用于操作符的前缀。ls -a。(2)被解析为标准输入流[stdin],如果文件名是以“-”开头,则需要加上前缀路径。bunzip2 linux-2.6.13.tar.bz2|tar xvf -。(3)先前的工作目录。(4)算术操作中的减法或负号。如果文件名中有空格,则需要使用\转义字符进行转义。linux中隐藏文件是以“.”开头的。find常用命令:(1)查找指定字节文件:find . -size 1033c,c表示bytes。(.原创 2021-11-03 17:32:34 · 457 阅读 · 0 评论 -
二叉树相关操作的算法总结
文章目录1.二叉树的顺序存储2.二叉树的链式存储结构3.二叉树的先序遍历4.二叉树的中序遍历5.二叉树的后序遍历6.二叉树的非递归遍历7.利用先序遍历算法创建二叉树8.计算二叉树结点个数9.计算二叉树中叶子结点个数10.计算二叉树的深度11.线索二叉树的结点定义12.以结点p为根结点的子树中序线索化13.遍历中序线索二叉树14.树的孩子兄弟存储表示15.哈夫曼树的存储表示1.二叉树的顺序存储#define MAXSIZE 100 //二叉树的最大结点数typedef TElemType SqBi原创 2020-06-06 16:39:26 · 380 阅读 · 0 评论 -
KMP算法中求next数组,nextval数组的方法
一、求next数组的值:第一位的next值必为0,第二位的next值必为1;前一位字符与其next值对应的字符比较,若相等,则该位的next值就是前一位的next值加1;若不等,向前继续寻找对应的字符与前一位进行比较,直到找到某位上的内容的next值对应的内容与前一位相等为止,则这个位对应的next值加1即为所求next值;若找到第一位都没有与前一位相等的内容,那么所求的位上的next值为1。二、求nextval数组的值:第一位的nextval值必为0,第二位若与第一位相等则为0,不等则为原创 2020-06-26 11:09:24 · 2428 阅读 · 0 评论 -
数据结构知识点
对数据结构知识点的总结原创 2020-02-28 16:55:01 · 3360 阅读 · 2 评论