自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 week4

⑤Xn就是计算本轮循环产生的新xs[2]的那个xs[0],而输出的xs[0]是上一轮循环的xs[1],输出的xs[1]是上一轮循环的xs[2],所以把xs[1]赋给xs[2],把xs[0]赋给xs[1],把Xn赋给xs[0],逆着循环“向上”追溯,执行10次循环即可“溯源”到原始的xs[0], xs[1], xs[2]。注意:gcdext(a,b)有三个返回值,分别是a和b的最大公约数即gcd(a,b),满足ax+by=gcd(a,b)的x,满足ax+by=gcd(a,b)的y。

2024-04-01 12:11:52 629 1

原创 RC4加密算法

这是一种对称加密算法,它的密钥长度可变可变范围为1-256字节(8-2048比特)RC4由伪随机数生成器和异或运算组成。RC4的密钥长度可变,范围是[1,255]。RC4一个字节一个字节地加解密。给定一个密钥,伪随机数生成器接受密钥并产生一个S盒。S盒用来加密数据,而且在加密过程中S盒会变化。由于异或运算的对合性,RC4加密解密使用同一套算法。

2024-04-01 11:01:31 397

原创 DES python代码的具体实现

S 盒在 DES 算法的轮函数中起到了非线性变换的作用,在 DES 的加密和解密过程中,会根据输入的数据块的不同,选择对应的 S 盒进行替换操作,从而完成一轮的加密或解密运算。它将输入的 6 位数据块映射为 4 位输出,在 DES 算法中,一共有 8 个 S 盒,每个 S 盒都是一个 4x16 的表格,其中每个元素表示一个 4 位的输出。是 DES 算法中的最终置换表,是一个长度为 64 的列表,列表中的每个元素表示输出数据块中对应位置的输入位置,P 置换将数据块中的位重新排列,返回重新排列后的结果。

2024-03-22 16:25:36 893

原创 AES,DES

上述步骤就是示意图中函数g的步骤,将第i-1个密钥的右半部分(8位)执行完上述步骤后得到g(第i-1个密钥的右半部分),将其与第i-1个密钥的左半部分(8位)进行异或得到第i个密钥的左半部分。进行S盒置换后需要与轮常数进行异或,S-AES的轮常数定义为:第一轮加密的轮常数是【1000 0000】,第二轮加密的轮常数是【0011 0000】。第i个密钥的右半部分由第i个密钥的左半部分与第i-1个密钥的右半部分进行异或得到。记原始密钥为第0个密钥。个密钥的右半部分的左右4位进行交换,再将左循环移位后的第。

2024-03-22 16:05:43 432

原创 AES,DES

S-box的设计基于有良好非线性特性的乘法反元素(乘法反元素是指对于每个非零元素a,存在一个b,使得a * b ≡ 1 (mod 2^8),在S-box中,将每个字节,视为GF(2^8)中的元素,并与乘法反元素进行乘法运算,就可以实现一种非线性的字节替换操作),并结合了一个可逆的仿射变换矩阵。AES 通过密钥编排函数把密钥矩阵扩展成一个包含 44 个字的密钥序列,其中的前 4 个字为原始密钥用于初始加密,后面的 40 个字用于 10 轮加密,每轮使用其中的 4 个字。在DES中,这个置放规则是固定的。

2024-03-16 08:35:09 899

原创 week2

滴啤就是dp的意思,考察的是dp泄露,先来推理。

2024-03-16 00:35:38 832

原创 指针(1)

生活中我们有了房间号才能够快速找到房间,同样,在计算机中CPU(中央处理器)在处理数据时,需要的数据是在内存中进行读取的,处理完之后又会放回内存中。在内存空间中,也是将内存划分为一个个的内存单元,每个内存单元的大小为1个字节,1个字节相当于8个比特位,一个比特位可以存储一个二进制的0或11byte=8bit1MB=1024KB1GB=1024MB1TB=1024GB1PB=1024TB生活中我们将门牌号叫做地址,在计算机中,我们把内存单元的编号叫做地址,c语言中我们把它叫作指针2.1。

2024-03-11 21:05:01 953

原创 指针——回调函数

指针深入理解之回调函数

2024-03-03 15:43:00 343

原创 密码刷题记录(3)

p=447685307 q=2037 e=17 c=704796792,提交flag{m}uozt{Zgyzhv_xlwv_uiln_xguhsld},不用看了,没提示。以U2FsdGVkX1为开头,应该是Rabbit加密,密钥为Rabbit。p=447685307 q=2037 e=17,提交flag{d}即可。埃特巴什码:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。根据flag格式,u对应f,o对应l,z对应a,t对应g。由题可知,这是BrainFuck,只有以下8种符号。

2024-02-21 14:45:42 808

原创 密码刷题记录(1)

题目已知flag1,flag2,e1,e2,n;满足flag1=m1^e1%n;求m1运行结果为1,说明e1和e2互素由扩展欧几里得定理,存在x,y;使得xe1+ye2=gcd(e1,e2)=1解析代码函数计算了e1和e2的最大公约数,并返回了扩展欧几里得算法的结果,其中d是最大公约数(d=1),x和y是满足贝祖等式的系数。2.m=pow(flag1,x,n)*pow(flag2,y,n)%n:使用了中国剩余定理(CRT),pow()函数的第一个参数是底数,第二个参数是指数,第三个参数是模数,

2024-02-15 18:02:43 946 1

原创 古典密码(2)

明文为 "AFFINE CIPHER" ,a对应5,b对应 8,而m对应26 (因共使用26字母),a的所有可能值有 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 与 25。方阵中的字母顺序可以根据密钥来确定,通常将密钥中的字母按顺序填充到方阵中,然后将剩余的字母按照某种规则填充。替换规则通常涉及字母对在方阵中的位置关系,例如将字母对替换为同一行的另一对字母或同一列的另一对字母。首先,构建一个5x5的方阵,其中包含了字母A到Z(通常将字母J排除,因为它与字母I相似)。

2024-02-07 11:50:32 934 1

原创 古典密码(1)

例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。例如,当偏移量是3的时候(向左偏移3个字母),所有的字母A将被替换成D,B变成E。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。首先将字母用数字代替,A=0,B=1,...,Z=25。对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到。

2024-02-02 16:58:04 1025

原创 公钥密码算法——RSA及其数论基础

这是因为 p 和 q 是互质的,所以小于 p * q 的正整数中,与 p 或 q 不互质的数的个数等于小于 p 的正整数的个数加上小于 q 的正整数的个数,即 (p - 1) + (q - 1) = p * q - p - q + 1 = p * q - (p + q) + 1 = p * q - (p * q - 1) = 1。首先准备两个很大的质数p和q,如果太小,密码则容易破译,但是太大计算时间也会变长,假设p和q的大小都是512比特,相当于155位的十进制数字。E是一个比1大,比L小的数。

2024-02-02 09:48:53 944

原创 crypto刷题篇1(Base)

因为base64的编码过程(原理)是不变的,只是最后一步根据数字找对应的字符时,字符的顺序变了,所以我们只要找到这些数字在标准base64编码表中对应的字符,就转换回了我们熟悉的base64编码结果,也就可以进一步借助Python已有的base64库来恢复出明文了。表得出的,而解题的大体思路就是先把密文恢复成用标准的base64编码表编码的结果,再调用Python中已有的base64.b64decode()函数恢复出明文即可。得到flag:LitCTF{LeT_Us_H4V3_fU0!

2024-01-27 22:10:43 513

原创 base系列编码

Base64 字符集包含 64 个字符,通常是 A-Z、a-z、0-9 和 "+"、"/"(有时还会使用 "=" 作为填充字符),用于表示不同的值。与 Base64 不同,Base32 使用 32 个不同的字符来表示数据,因此编码后的结果比 Base64 更长,但它可以更好地适应某些场景的需求,例如在文件名中使用。1'定义一个包含 58 个字符的字符集,通常是由除去容易混淆的字符(如 0、O、I、l)和不包含大小写敏感的字母(如 A、a、B、b)组成的集合。将每组 4 个位转换为对应的十六进制字符。

2024-01-27 18:54:25 396

原创 VMware虚拟机安装centos

10.在VMware界面(管理员方式启动)点击“编辑”里面的”虚拟网络编辑器“,然后勾选DHCP服务将IP地址分配给虚拟机,并设置子网IP(默认)4.软件中只配置软件选择,安装源系统会自动识别。只配置安装位置(指系统如何进行分区),此处选自动分区。11.点击NAT模式旁边的”NAT设置“,然后修改与子网IP同网段下的网关IP(前三位相同)3.开启虚拟机,并选择语言为中文。7.等待全部配置完成后,点击重启。9.CentOS7的网络配置。1.点击x84-64下载。随便选择一个下载地址。5.设置root密码。

2023-12-09 13:30:56 370

原创 python调库实现base64加解密

解密函数base64.b64decode()可以将Base64字符串解码为原始二进制数据。例如,将Base64字符串“SGVsbG8sIFdvcmxkIQ==”解码为原始数据。加密函数base64.b64encode()可以将任何二进制数据编码为Base64字符串。例如,将字符串“hello world”编码为Base64。首先,导入base64库。

2023-12-01 19:55:09 419 1

原创 攻防世界weak_auth

当我们随便输入一个用户名和密码时,提醒我们将用户名改为admin,改完之后会提示我们密码错误。正确的密码和错误的密码长度不同,由此可知密码123456。将代码发送到intruder,添加爆破的位置。查看页面源代码,提示我们用字典进行爆破。添加字典,设置合适线程,进行爆破。用burp进行抓包,抓包完成。点击start attack。

2023-11-09 17:39:12 45 1

原创 攻防世界backup

这里是要我们寻找index.php这个备份文件,在地址栏中输入/index.php.bak(这里的.bak是备份文件的扩展名),得到备份文件用记事本打开。

2023-11-09 17:00:33 38 1

原创 攻防世界PHP2

打开Burp中的decoder输入admin,encode得到%进入题目,输入index.phps,进行代码审计。

2023-11-09 16:50:30 32 1

原创 攻防世界simple_php

这里的“==”仅表示数值相等,而且当数字和字母组成的字符串进行比较时,只会与最前面的数字进行比较,故给a赋值为0asdf,b为5678hjiu,输在网址的后面。打开后我们可以下面的几行php代码。

2023-11-09 16:36:03 31 1

原创 攻防世界baby_web

点击F12进入开发者模式,再次请求就可以看到index.php文件,查看消息头即可看到flag。题目描述为想想初始页面是哪个,将1.php改为index.php再次请求,内容依旧没有改变。攻防世界web进阶区baby_web,题目打开页面为如下。

2023-11-09 16:09:29 33 1

原创 VMware安装kali

打开kali网址,点击Download。根据需要和电脑性能,合理选择磁盘的大小。安装KALI,点击创建新的虚拟机。下翻找到第一个,点击,直接安装。点击自定义,点击下一步。选择Linux,下一步。下一步创建新虚拟磁盘。

2023-11-02 14:15:35 356

原创 VMWARE的安装

3.安装完成之后,点击许可证,,输入密钥(此处的密钥可以直接从浏览器搜索一个就好),最后点击完成。由于已经安装完成,故出现如下界面,完成后直接点击确定。2.点击下一步更改安装方式,点击第二个。1.打开浏览器,下载安装包,并打开。

2023-11-02 08:48:28 150

原创 用Burpsuite完成百度的抓包以及证书配置

一.在火狐浏览器中添加burp代理1.打开火狐浏览器,添加组件2点击扩展,输入组件名称进行添加3成功添加后点击浏览器右上角的扩展,出现以下界面,然后开始设置组件4.点击选项,添加,并将代理IP地址和端口设置成如下,最后点击保存5.回到浏览器点击右上角扩展就可看到我们刚刚的代理名字BP二.证书配置1.打开Burpsuite,找到“代理Proxy”,再选择“选项Options”,最后点击“Import/exportCA certuficate”。2.选择证书的类型3.保存到本地,并写上名称4.找到Firefox

2023-10-30 20:15:13 391

原创 GET和POST请求

post请求则是将传递的参数放在request body中,不会再地址栏中显示,安全性比get请求要高,而且参数的长度也没有限制。1.最初是浏览器与服务器之间的通讯协议,GTP用于读取资源(例如图片,HTML等等),POST用于 提交表单,得到一个结果反馈页。2.get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符)。9.对于参数的类型,get只能接受ASCⅡ字符,而post没有限制。post请求不会被缓存,也不会保留在浏览器的历史记录中。

2023-10-26 13:55:06 190 1

原创 第一个phpstudy的搭建以及hello world的输出

1打开PHP后出现以下界面,启动WNMP,Apache,和Mysql2.安装相应的环境php7.2.9.nts,Apache2.4.39,MySQL5.7.23点击网站,先建网站,填写域名为127.0.0.12,点击管理中的打开网站出现以下则说明网站搭建完成4点击管理中的根目录,新建一个文本,改后缀为.php,并用vs code打开,输入代码5.打开网址即可出现

2023-10-26 07:35:23 469 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除