从0到1的CTF之旅————Crypto(2)

端午节快到了,终于可以放假了,奈斯~
放假时也得提升自己哦,开始学习,又要做题咯,废话少说,现在开始
————————————————————————————————————————————

第十一题:RSA(题目如图)

在这里插入图片描述
十分经典的RSA加密,给出了p,q,e,求d,是比较容易的一种了,下面先给出解题代码。

import gmpy2
p = 473398607161
q = 4511491
e = 17
d = gmpy2.invert(e,(p-1)*(q-1))
print (d)

其中的invert函数可能不太了解,这其实就是求逆元的函数,下面给出一个invert函数的例子看一看。

import gmpy2
#求一个数模x的逆元y
#如3*4 = 1 mod 11
a = gmpy2.invert(3,11)
print(a)

毫无疑问这里输出的是4,但是为什么要用到这个函数呢?这就和RSA加密的原理有关了,下面给出其原理(来自百度百科)
在这里插入图片描述求出d后,提交显示成功!

下面也给出一张图来概括一下RSA解密的解题思路和方向,具体的以后遇到详细的题目再说吧。(大神整理的)
在这里插入图片描述
————————————————————————————————————————————

第十二题:丢失的MD5(题目如图)

给出的是一段python代码。
直接运行,报错,简单看了看代码,发现居然是用python2编写的。。。
下面给出我自己修改后的适用于python3的代码。

import hashlib   
for i in range(32,127):
    for j in range(32,127):
        for k in range(32,127):
            m=hashlib.md5()
            m.update(('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM').encode("utf8"))
            des=m.hexdigest()
            if 'e9032' in des and 'da' in des and '911513' in des:
                print(des)

其实也没有很大的变化,就是print后面需要加括号,然后要指定形式编码encode(utf8),否则会报string must be encoded before hashing的错误,跑出来的结果直接输入,提交成功!

————————————————————————————————————————————

第十三题:Alice与Bob(题目如图)

在这里插入图片描述
分解为两个素数嘛~,直接丢出在线分解网站http://www.factordb.com/,顺带一提,RSA的n分解中其实经常用到这个,建议收藏网址。
分解出两个数如下,稍加组合为101999966233
在这里插入图片描述
丢到MD5中加密去,得到flag,提交显示成功!
在这里插入图片描述
————————————————————————————————————————————

第十四题:rsarsa(题目如图)

给出了p,q,e,c,显然这里是想让我们求明文m
在这里插入图片描述这边给出代码示例(说实话这题真没做出来,虽然理解了原理但是python基础还是有点差,建议小伙伴们还是要从打牢基础开始,否则就像我这样天天偷别人代码了QAQ)

import gmpy2
def Decrypt(c,e,p,q):
	L=(p-1)*(q-1)
	d=gmpy2.invert(e,L)
	n=p*q
	m=gmpy2.powmod(c,d,n)
	flag=str(m)
	print("flag{"+flag+"}")
if __name__ == '__main__':
	p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
	q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
	e =  65537
	c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
	Decrypt(c,e,p,q)

最后解出flag,提交显示成功!

————————————————————————————————————————————

第十五题:大帝的密码武器(题目如图)

在这里插入图片描述凯撒大帝,凯撒大帝,此题自然是与凯撒加密有关系,根据给出的单词来进行逐个尝试。

根据解密后的单词是否是规则的来判断其偏移量,发现当其为13时,翻译为security,故偏移量就是13.
在这里插入图片描述
同理,再将comechina使用偏移量13进行加密,即可得到flag,提交,显示成功!

————————————————————————————————————————————

第十六题:Windows系统密码(题目如图)

在这里插入图片描述重点自然先放在ctf这一行上,就两段加密的,依次丢到我上一篇给出MD5在线解密中,解出flag。
在这里插入图片描述
————————————————————————————————————————————

第十七题:信息化时代的步伐(题目如图)

在这里插入图片描述
说实话,一开始全无头绪,甚至还想到过繁体字,但是数字和繁体字也没啥关系啊(苦恼ing)
然后去百度上查了一下中文转换数字或者数字转换中文,没想到居然还找到了。
这玩意叫做中文电码,给出网址如下:https://dianma.bmcx.com/
丢进去解出flag,提交成功!
在这里插入图片描述————————————————————————————————————————————

第十八题:传统知识+古典密码(题目如图)

在这里插入图片描述

第一次见到这种题,一脸懵逼。。。。。还是先去百度上找一下对应表,至少能够转换成数字。
在这里插入图片描述
转换成数字之后得到这几个:28,30,23,8,17,10,52,30 。
背后那个+甲子有点没搞明白不晓得是加1还是加60,不管了,先都试一下。

如果+1的话,就是29,31,24,9,18,11,53,31。 对照一下Ascll码表,得到)1$。。。。。。看了三位就知道有问题了,完全不是正常密码嘛。

那么加60试一下,就是88,90,83,68,77,70,76,90,对照Acsll码表,得到一个略显正常的字符串XZSDMFLZ

古典密码就这三四种,那就都试一下吧,首先跑一下栅栏,好吧,都是不规则字符又不是拼音又不是单词,那估计第一种就不是了。

维吉尼亚是需要秘钥的,这边也没给,暂时先排除。

那就试一下凯撒密码,丢进去枚举。
在这里插入图片描述
哦豁!这个位置有点像中文了,复制一下丢到栅栏密码去换换顺序。
在这里插入图片描述
得到shuangyu,诚然,这题确实很难想,需要对古典密码的加密方式非常熟悉才能顺利做出来。

————————————————————————————————————————————

第十九题:凯撒?替换?呵呵!(题目如图)

在这里插入图片描述给出的一串加密字符,凯撒密码的替换加密,直接丢出在线网站https://quipqiup.com/,丢进去解密,第一行就是flag!

在这里插入图片描述
————————————————————————————————————————————

第二十题:萌萌哒的八戒(题目如图)
在这里插入图片描述
奇怪,密码题里怎么混进了一道misc题目。。。。用010检查了一下并未发现异常,所以玄机一定在下面那几个特殊符号上面。

突然想到,猪?是否会是猪圈密码?于是查了一下猪圈密码的对照表
在这里插入图片描述
果不其然,就是和下面一毛一样的,翻译一下:whenthepigwanttoeat,提交,显示成功!!

————————————————————————————————————————————
2022年6月5日晚上8点42完成,这次难度确实比前十题要难,想不出来的时候真的是脑阔疼。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值