BUUCTF-Crypto【1-20T】

1.md5
WU:cmd5解码 【e00cf25ad42683b3df678c61f42c6bda】  
2.Url编码
WU:url解码 【%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d】
3.一眼就解密
WU:Base64解码【  ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=】 
4.看我回旋踢
WU:rot13解码【synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}】
5.摩丝
WU:摩斯密码解码【.. .-.. --- ...- . -.-- --- ..-】
6.[BJDCTF 2nd]签到-y1ng
WU:Base64解码【 QkpEe1czbGMwbWVfVDBfQkpEQ1RGfQ==
7.password
姓名:张三
生日:19900315
WU:猜想 zs19900315
8.变异凯撒
WU:凯撒密码解码【afZ_r9VYfScOeO_UL^RWUc】
①、观察密文, afZ_r9VYfScOeO_UL^RWUc
由于密文中有下划线和阿拉伯数字,所以推测应该不是用的字母表进行的替换加密,很有可能是用的ASCII码表。
9.Quoted-printable
WU:Quotedprintable解码:
【=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6】
10.Ribbit
WU:【U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI】
11.篱笆墙的影子
WU:栅栏密码解码  【felhaagv{ewtehtehfilnakgw}】
12.RSA
WU:rsa解码【在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17,求解出d作为flga提交】
里面有详细教程,好像有点复杂→ (7条消息) Buuctf RSA 题目总结_Ahuuua的博客-CSDN博客
13.丢失的MD5
WU:

首先打开之后是一个py文件,本地跑一下,出错

 源码为:

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')

            des=m.hexdigest()

            if 'e9032' in des and 'da' in des and '911513' in des:

                print des

修改后(注意修改的地方:加上的【.encode('utf-8')】这玩意是什么?→https://blog.csdn.net/qq_49551075/article/details/107556997):

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'.encode('utf-8')+chr(i).encode('utf-8')+'O3RJMV'.encode('utf-8')+chr(j).encode('utf-8')+'WDJKX'.encode('utf-8')+chr(k).encode('utf-8')+'ZM'.encode('utf-8'))

            des=m.hexdigest()

            if 'e9032' in des and 'da' in des and '911513' in des:

                print (des)

运行得出flag:

14.[BJDCTF 2nd]老文盲了

下载文件打开:【罼雧締眔擴灝淛匶襫黼瀬鎶軄鶛驕鳓哵】

在网上找的了在线汉字转拼音。得到这些汉字的读音为:

bì jí dì dà kuò hào zhè jiù shì fǔ lài gē zhí jiē jiāo lè bā dà kuò hào

得到:flag{淛匶襫黼瀬鎶軄鶛驕鳓哵}

看到一串繁体字的都可以考虑这样做,还有一种“与佛论禅”的加密)

15.Alice与Bob

下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。

根据题目可知要先将提供的大整数进行素数拆分,根据题目合成一个新数字然后MD5的32位小写哈希

素数拆分网站如:http://www.factordb.com/index.php

MD5解密网站如:https://www.cmd5.com/

16.rsarsa

Math is cool! Use the RSA algorithm to decode the secret message, c, p, q, and e are parameters for the RSA algorithm.
p=9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q=11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c=83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

Use RSA to find the secret message

做到这里觉得应该先去学习相关的背景知识再去做题……

关于RSA的知识储备(慢慢啃吧)→https://www.anquanke.com/post/id/84632

写代码(这题p,q,e,c都给我们了。于是不需要什么enc和pem文件):

import math
p=9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q=11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e=65537
c=83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
n=p*q
fn=long((p-1)*(q-1))

i = 1
while(True):
    x=(i*fn)+1
    if(x%e==0):
        d=x/e
        break
    i=i+1
print pow(c,d,n)

得到flag→

17.大帝的密码武器

题目.txt:
公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。

密文.txt:
ComeChina

凯撒密码解密后加密(加密位移:13)

18.Windows系统密码

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
ctf:1002:06af9108f2e1fecf144e2e8adef09efd:a7fcb22a88038f35a8f39d503e7f0062:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:bef14eee40dffbc345eeb3f58e290d56:::

一开始有点无从下手……经过一次次的尝试,找到了藏在这里面真正的密文a7fcb22a88038f35a8f39d503e7f0062,md5解密

19.[BJDCTF 2nd]cat_flag

有点意思,第一次做到图片题

触及了知识盲区……上网查查:

图中每行有8只猫,总共有两种猫,猜测为二进制ASCII码,二进制转换成字符串即可。

一只有鸡腿,一只没有鸡腿。很容易想到二进制数0,1。
将图片用二进制表示为:
01000010
01001010
01000100
01111011
01001101
00100001
01100001
00110000
01111110
01111101
将二进制数转为16进制进制转换,再16进制转文本16转文
得到flag为: BJD{M!a0~}

第一反应:还有这种思路,学习了!

20、[BJDCTF 2nd]燕言燕语-y1ng 1

小燕子,穿花衣,年年春天来这里,我问燕子你为啥来,燕子说:
79616E7A69205A4A517B78696C7A765F6971737375686F635F73757A6A677D20

有点像十六进制,用16进制转字符(16进制在线转换)得到yanzi ZJQ{xilzv_iqssuhoc_suzjg}

一度以为这就是flag了,结果incorrect

原来这还是密码,维吉尼亚密码,密钥是yanzi……(维吉尼亚解密),解密得flag

又get一种新密码:

维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。另外,维吉尼亚密码必须有一个密钥,这个密钥由字母组成,最少一个,最多可与明文字母数量相等。维吉尼亚密码加密方法示例如下:

明文:I've got it.
密钥:ok

密文:W'fs qcd wd.

首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到相同。本例中,明文长度为8个字母(非字母均被忽略),密钥会被程序补全为“okokokok”。现在根据如下维吉尼亚密码表格进行加密:

维吉尼亚密码表格

明文第一个字母是“I”,密钥第一个字母是“o”,在表格中找到“I”列与“o”行相交点,字母“W”就是密文第一个字母;同理,“v”列与“k”行交点字母是“F”;“e”列与“o”行交点字母是“S”……

  • 维吉尼亚密码只对字母进行加密,不区分大小写,若文本中出现非字母字符会原样保留。
  • 如果输入多行文本,每行是单独加密的。

 

小结:几周断断续续做完了前二十道题,每做一道题都会去搜解题原理,一边做一边学。算是对密码有一点点入门了吧。每遇到一种新的加密方式都让我更加觉得密码是多么的变幻、渊深莫测……当然也很有趣,哈哈哈。再接再厉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值