- 博客(68)
- 收藏
- 关注
原创 BUUCTF——CRYPTO(记录不熟悉的题)(5)
题目让你低头,意思是让你看键盘。在键盘上比划每一组,圈起来的就是每一组代表的字符,由此可以得到解密压缩包的密码:circle解开后得到密文:接下来找密钥。根据题目ACTF,猜测接出来的flag应该是‘ACTF开头’,对于维吉尼亚表格可以找到密钥:spsp或者sp 利用在线网站解出: 去提交确实错的,看了大佬们的wp后知道buuctf给的密文有问题,正确的密文应该是:SRLU{OWSI_S_RDPKHARSA_NXYTFTJT} 换成小写后提交正确。不知道用的什么语言,但大致能看懂过程:前三个for循环用来构
2022-08-08 10:47:38
1083
原创 [QCTF2018]Xman-RSA
看到加密脚本,基本上是看不懂的,大概率是进行了替换加密,利用在线网站进行词频分析:quipqiup - cryptoquip and cryptogram solver 大部分是能看懂了,但还是有一些错误,手动改完得到: 再结合其它文件,可以得到以下条件:观察解密脚本可以大致知道思路:按照某种规律,flag被分成了两部分msg1+msg2,所以想得到flag,必须先得到msg1和msg2。往下接着看c1、c2是怎么算出来的,发现就是基础rsa加密过程,只不过不知道n1,要是能算出n1,加上n2与
2022-08-07 13:54:06
649
原创 BUUCTF——rsa系列(6)
看到有两部分,第一部分是以e = 256的rsa解密,但因为e与phi_n不互质的原因,用一般的方法解不出来,看了大佬们的wp后,知道了用。说明有4个‘FC’,但是我们不能确定这里所有的‘FC’都是被替换而来的,也有可能原本就有,所以这里共有。接下来就是利用定理来得到一个方程了,参考了大佬的步骤,尝试着推一推吧(嫌敲起来麻烦,在纸上推算了!== 16种情况,需要进行爆破。得到hint,最终的flag长度小于400。来解,可以用于e不是很大且一般的rsa解法行不通的时候。给了n、c、e、以及被替换过的p。..
2022-08-06 16:02:50
1738
原创 [De1CTF2019]babyrsa
可以看到assert两行,参数里头,除了e1和e2,其它参数均给出,故猜测此部分应该是解出e1和e2。结合第四部分,猜测是求q1p和提示hint。2、‘:’后头的为表达式,只能有一个,是lambda函数执行的内容,可以返回值,也可以不返回。格式:map(函数名,可迭代的序列,可迭代的序列......),结果返回一个集合。另外,可以使用lambda匿名函数的方法使用map()函数,如此题中便是这样。1、可以接受多个参数,如此题中,接受了m,e,n,c四个参数。用lambda来声明一个匿名的函数(即。.....
2022-08-05 12:06:22
332
原创 BUUCTF——CRYPTO(记录不熟悉的题)(4)
这一题的关键在于c=pow(m,bytes_to_long(flag),n),即c=m^flag%n,即m^flag=c%n,其中,m、c、n都是已知的,了解到,这是。Encryption即为c,PublicKey中的分别位n和e(公钥),PrivateKey中的分别位n和d(私钥)利用sympy库中的discrete_log(x,y,z)函数可求解,x模数,y余数,z底数。因为原文太长了,用脚本得分开。又有提示你可能会想找罗马人。发现n都相同,故猜测是共模攻击。.........
2022-08-02 19:50:33
2182
原创 BUUCTF——CRYPTO(记录不熟悉的题)(3)
用记事本打开所给文件,发现一堆乱码,再用010打开首字母代表星期几的英文首字母缩写,其中,S1是星期六,S2是星期日。下一个数字代表的是第几行,根据此规律,得到31125144118,对照字母表得到英文单词calendar。...
2022-08-01 16:10:54
1169
原创 BUUCTF——rsa系列(4)
给了c、z、n以及e分析一下,首先是它的作用是进行求导,前一个参数表示求导的内容,后一个参数表示求导的主体,如意思是以p为主体对求导得到1/(1+),同理得到1/(1-)。其次对于如Fraction(1,Derivative(arctan(p),p))是以1为分子,以Derivative(arctan(p),p)为分母,这样一来可以得到关系式z=可以进一步得到下面的关系式=z-2n,=z+2n,敲代码解出p、q。............
2022-07-27 17:16:19
4734
原创 154. 寻找旋转排序数组中的最小值 II AND 540. 有序数组中的单一元素
虽然此题在表面上没有满足元素有序,但是实际上还是能够通过任意关键字的值来确定所找关键字的位置,原因在于旋转的是一部分,这也就能够保证部分有序。有两种解法,第一种是暴力法,依次比较遇到的元素和下一个元素,但这样在最坏的情况下会浪费时间(最小的元素在最后),时间复杂度会超。另一种解法是采用二分法。......
2022-07-25 21:36:41
187
原创 BUUCTF——rsa系列(3)
题目直接给了两组c和n,以及e的范围,并且两组n用的是同一个q,故可以通过gcd函数求q。题目给了3组(n,c)(n和c都是五进制的),应该是中国剩余定理。搞不懂,借鉴大佬的wp,
2022-07-23 15:10:09
1474
原创 BUUCTF——CRYPTO(记录不熟悉的题)(2)
比如第零位没有移动,而第一位的233,是原数列第十二位移动得到的(原数列有个起始的0),由此可以猜测,给出的神秘数字串是由32位flag对应进行移位得到的,参考大佬的脚本(要么自己手动慢慢移、、、)百度一下什么是达芬奇密码,发现与斐波那契数列有关,选取部分项,发现给出的数组列中的数是对应斐波那契数列位进行移位得到的,得到的falg中有问号,有md5的结果,用在线网站怎么也试不出来,故只能暴力破解了。除了rot13,其它的都乱码了,说明是rot13类型。............
2022-07-23 14:06:05
1201
原创 81. 搜索旋转排序数组 II AND 153. 寻找旋转排序数组中的最小值
对于当前的中点,如果它指向的值小于等于右端,那么说明右区间是排好序的;反之,那么说明左区间是排好序的。如果目标值位于排好序的区间内,我们可以对这个区间继续二分查找;反之,我们对于另一半区间继续二分查找。但数组中可能存在重复数字,所以,如果中点和左端的数字相同,我们并不能确定是左区间全部相同,还是右区间完全相同。在这种情况下,可以将左端点右移一位,然后继续进行二分查找。思路因为题目要求了必须尽可能减少整个操作步骤,所以用for循环线性找就不行了,故用二分法。...
2022-07-20 21:17:37
156
原创 69. x 的平方根 AND 34. 在排序数组中查找元素的第一个和最后一个位置
这样做样例估计都能过,但超时了,问题大概率是出在后面的for循环上(最坏的情况是数组所有的数都是target目标值,这样一来时间复杂度就为O(n),而题目要求时间复杂度为O(logn)。思路运用二分查找的方法,将上下界分别定为0和x。循环内仅分2种情况,直至不满足循环的条件而退出循环。然而这样又又超时了!)检查了、修改了不知道多少次之后终于被我试出来了!所以我不得不分别用二分法来求。原理暂时还没搞懂.........
2022-07-19 19:42:32
147
原创 680. 验证回文字符串 Ⅱ AND 524. 通过删除字母匹配到字典里最长单词
代码】680.验证回文字符串ⅡAND524.通过删除字母匹配到字典里最长单词。
2022-07-17 20:49:07
170
原创 BUUCTF——CRYPTO(记录不熟悉的题)
给了一个pass.hash的文件,用记事本打开。了解到是中文电码,题目中也透露了一些信息。先对照60甲子年表,写出对应数字。得到flag,把空格去掉即可。解密ctf第二段,得到flag。同上题一样,利用网站直接爆破。改为大写即为flag。用在线md5解密网站。............
2022-07-17 09:46:41
564
原创 142. 环形链表 II AND 633. 平方数之和
思路:利用快慢指针(Floyd 判圈法)。给定两个指针, 分别命名为 slow 和 fast,起始位置在链表的开头。每次 fast 前进两步,slow 前进一步。如果 fast 可以走到尽头,那么说明没有环路;如果 fast 可以无限走下去,那么说明一定有环路,且一定存 在一个时刻 slow 和 fast 相遇。当 slow 和 fast 第一次相遇时,我们将 fast 重新移动到链表开头,并 让 slow 和 fast 每次都前进一步。当 slow 和 fast 第二次相遇时,相遇的节点即为环路的开始点。
2022-07-14 15:19:55
210
原创 BUUCTF——rsa系列
BUUCTF——RSArsarsap、q、e、c都给出了,计算p*q得到n,再利用基础方法就可得到m,直接print(m)即可 RSA1实在搞不清公式原理,膜拜大佬:http://t.csdn.cn/qkmjb得到 记得把前面'noxCTF'的换成flag 两组e、c,为共模攻击,与CTFshow中的easyrsa3相同RSA2 dp泄露类型RSA又是没见过的题型,给了.enc和.key文件,查阅了解到,可以根据pub.key文件值得是公钥解析类......
2022-07-13 15:29:05
5971
1
原创 435. 无重叠区间 And 605. 种花问题
435. 无重叠区间qsort用法参考:http://t.csdn.cn/DF2K4605. 种花问题 参考:Lailah
2022-07-10 15:00:11
215
原创 455. 分发饼干 And 135. 分发糖果
思路:135. 分发糖果思路:注意下标,不要越界(因为越界的原因导致我错了几次)思路参考:LeetCode 101:和你一起你轻松刷题(C++)作者:高畅 Chang Gao
2022-07-07 21:01:35
173
原创 CTFShow-easyrsa5、6、8
对比于easyrsa4,这里n很大,是低解密指数攻击。e和n都很大,根据加密的过程,可以很容易爆破出d,为低解密指数攻击爆破d脚本https://github.com/pablocelayes/rsa-wiener-attack注意要将破解脚本和rsa-wiener-attack的py文件放在同一目录下转:http://t.csdn.cn/wDqtQ 给了.py文件,先输出p、q的值,发现p、q相近,用yafu分解大整数n 得到p和q,然和就用之前的方法就行了 easyrsa8得到附件,
2022-07-07 10:25:06
834
原创 CTFShow-easyrsa1-4
先回顾一下rsa加密算法:密钥生成过程1、 随机找两个质数 P 和 Q ,P 与 Q 越大,越安全;2、 计算他们的乘积 n = P * Q3、 计算 n 的欧拉函数 φ(n):φ(n) = φ(P * Q)= φ(P - 1)φ(Q - 1) = (P - 1)(Q - 1)4、 随机选择一个整数 e,条件是 1< e < φ(n),且 e 与 φ(n) 互质5、 计算e对于 φ(n) 的模反元素d,可以使得 ed 除以 φ(n) 的余数为 1( 1<d<e,且ed
2022-07-05 10:45:30
647
原创 gmpy2库的常用函数及其作用
第一次做RSA题,去找题解,发现得用上gmpy2库,下好之后去了解了一下gmpy2库的常用函数注:一般是用这个库来解决一些大整数之间的各种计算,下面的例子都是举的常规数1、求两整数的最大公因数import gmpy2#求整数a、b的最大公因数a = gmpy2.gcd(3,12)print(a)输出:32、判断一个数是否为素数import gmpy2#判断一个数是否为素数a = gmpy2.is_prime(5)print(a)输出:True3、判断一个数是否
2022-05-06 19:24:21
12221
原创 ctf.show题解
密码学签到题目:}wohs.ftc{galf方法:s = '}wohs.ftc{galf's = s[::-1]print(s)crypto2题目:方法: jsfuck 密码,用6种符号来编写代码。(、)、+、[、]、!。 打开控制台,将密文复制,然后回车crypto3解法同上crypto4题目:p=447685307 q=2037 e=17解法:rsa加密输入p,q,e即可(17对应16进制为11)crypto5题目:p=4476...
2022-04-26 10:10:02
2328
原创 初知古典密码
单表替换键盘加密(一)将给出的一堆没有意义的字符在键盘上比划,根据比划的形状确定密文。比如给出"BHUK,",在键盘上比划就可大致得到一个大写的'N' 或者给出"ljm,io",在键盘上比划就可发现这段字符将'k'圈起来了,则'k'即为所得(二)利用键盘上数字和字母对应的列值和行值来加密字母行值作为横坐标,数字列值作为纵坐标。如明文"bye"加密后的密文为"35 16 13"。 数字列值作为横坐标,字母行值作为纵坐标。明文"bye"加密后的密文为"53 61 31"。小坑:行值还可以
2022-04-19 11:03:41
1128
原创 筛选法求素数
#include<stdio.h>int main(){ int a[101]={0}; int i,j; for(i=2;i<=10;i++) //从2-10作为最小值开始筛选 { for(j=2;j*i<101;j++) //找出最小数的倍数 { a[i*j]=1; //把最小数的倍数赋值1 } } for(i=2;i<101;i...
2021-12-12 21:58:20
768
原创 求1到1000间的所有素数并按十个一行输出,以及输出总数
方法一:定义新函数#include<stdio.h>#include<math.h>int isPrime(int n){ int i; for(i=2;i<=(int)sqrt(n);i++) if(n%i==0) return 0; return 1; }int main(){ int i; int counter=0; for(i=2;i<=1000;i++) { ...
2021-10-30 10:31:44
3730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅