Crypto( 12 )

easy_crypto

image
下载好打开,有点像base64,搜了一下并不是,在网页上看见若base 64出现乱码就用rot 13
image
之后就没思路了
image
结果要用base 32
image
base 64
image
base 85
image
flag{so_easy!}

下面是有关base知识点

image
https://www.cnblogs.com/ruoli-s/p/14206145.html

JJ

image
用与佛论禅在线工具
image
image
base 100
image
base 64
image
flag{zhou-jie-lun-zui-niu-bi}

ctfshow

密码2

image
将ctf转为. 将show转为-,摩斯密码
image
以为是flag,提交上去竟然不对,看来wp,结果还要进制转换
image
flag{珍惜眼前人}

BJDCTF2020 签到

image
有点像16进制,用16进制转字符串在线工具
image
提交了,不对,结果flag是:
BJD{We1c0me_t4_BJDCTF}
不需要flag{……}

BJDCTF2020 编码与调制

image
一张图和一个txt文本,无思路,看了大佬的wp
提到了曼彻斯特编码,第一次遇见,先将密文转二进制,在转曼彻斯特编码,最后再转16进制,再用16进制转字符就ok了
image
二进制转为曼彻斯特编码对应的工具,也没找到,后面16进制转字符串也没得到flag

BJDCTF2020 Polybius

image

用base 64 解了一下
image
放上去也不对,看了wp,结果是棋盘密码
翻译一下就是该明文的长度为14,然后再看密文的长度为28,刚好为2倍关系,所以说棋盘密码无疑了,那现在就是有一个问题,不知道顺序。

现在的已知罗列如下:
image
以及第一行有字符:u,o,e,a,i

第一列有字符:o,a,u,i,e

但是现在不清楚它们的排列方式是怎样的,也就是说现在一共有5!=120种情况,当然如果有耐心的话一个一个是可以试出来的,在这里我们使用脚本
`
​import itertools
s="aeoiu"
sumresult=[]
numsumresult=[]
ciper="ouauuuoooeeaaiaeauieuooeeiea"
for i in itertools.permutations(s,5):#因为在这里并不清楚aeoiu的排列顺序,因此调用函数做一个全排列
sumresult.append("".join(i))
"""
下面这行代码是来进行一个棋盘的演示:
首先从上面的全排列先选出一组字符,然后在找到密文的对应的字符
最后我们得到得数字,就是密文各个字符,在表格中排列位置
可以进行调试,第一次调试过后,j为o,此时temp为3,而按照刚才的aeoiu的顺序,o也的确在第三个位置。
"""
for i in sumresult:
temp=""
for j in ciper:
temp+=str(i.index(j)+1)
numsumresult.append(temp)

"""
在进行棋盘演示之后,我们就需要开始自己的表演了:
首先取上面的第一串数字,然后因为在明文中,每一个字符需要用两个字母加密,那在下面的循环结构里,
也是以每两个数字为一个单位进行求解,
后面这个计算式:xx=(int(i[j])-1)*5+int(i[j+1])+96其实就是一个棋盘里找规律
来浅浅验证一下子吧,ou,所以第一个加密的字符是p,ou为3和5,p的字母表位置是第16,所以说用上面那个算式,但是,这么做会有一个问题
表格里i和j放在一起了,也就是说现在等于缺了一个字符,导致i(包括i)前面的字符不受影响,后面的字符少了一位,那就需要加一个判断语句
让后面的数字挨个+1,问题就都解决了,最后输出就好
另外+96是因为要变成ASCLL值,虽然大家都懂,但还是提示一下下。

点击查看代码
import itertools
s="aeoiu"
sumresult=[]
numsumresult=[]
ciper="ouauuuoooeeaaiaeauieuooeeiea"
for i in itertools.permutations(s,5):#因为在这里并不清楚aeoiu的排列顺序,因此调用函数做一个全排列
    sumresult.append("".join(i))
"""
下面这行代码是来进行一个棋盘的演示:
首先从上面的全排列先选出一组字符,然后在找到密文的对应的字符
最后我们得到得数字,就是密文各个字符,在表格中排列位置
可以进行调试,第一次调试过后,j为o,此时temp为3,而按照刚才的aeoiu的顺序,o也的确在第三个位置。
"""
for i in sumresult:
    temp=""
    for j in ciper:
        temp+=str(i.index(j)+1)
    numsumresult.append(temp)
 
"""
在进行棋盘演示之后,我们就需要开始自己的表演了:
首先取上面的第一串数字,然后因为在明文中,每一个字符需要用两个字母加密,那在下面的循环结构里,
也是以每两个数字为一个单位进行求解,
后面这个计算式:xx=(int(i[j])-1)*5+int(i[j+1])+96其实就是一个棋盘里找规律
来浅浅验证一下子吧,ou,所以第一个加密的字符是p,ou为3和5,p的字母表位置是第16,所以说用上面那个算式,但是,这么做会有一个问题
表格里i和j放在一起了,也就是说现在等于缺了一个字符,导致i(包括i)前面的字符不受影响,后面的字符少了一位,那就需要加一个判断语句
让后面的数字挨个+1,问题就都解决了,最后输出就好
另外+96是因为要变成ASCLL值,虽然大家都懂,但还是提示一下下。
"""
for i in numsumresult:
    ans_=""
    for j in range(0, len(i),2):
        xx=(int(i[j])-1)*5+int(i[j+1])+96
        if xx>ord('i') :
            xx+=1
        ans_+=chr(xx)
    print(ans_)
最后BJD{flagispolybius}

36D 签到

image
打开文本就是这样的
image
题目有提示:用rot有关的工具
image
应该是用rot 47,解出来是这样的
image
试试对应着键盘敲
flag{6b6579626f6172645f656e63}
竟然是错的,想到了hex编码
image
最后flag:
flag{keyboard_enc}

justShow

image
image
看见了后面的字符串,大概懂了一点,应该是将密文往后移了移位

所以将hlcgoyfsjqknyifnpd往前移一位得:

gkbfnxeripjmxhemoc
在用上面的密文进行playfair密码解密,密钥为abcdefghijklmnopqrstuvwxyz

解密出来:flagisctfshowicome

image
flag{ctfshowicome}

飞鸽传书

先用base 64解密,得到
image
搜了搜%0A
image
1b08af276dbc7593271f4ee616289324
e2ae3a2350743c516cda412499ba3be9
bde52cb31de33e46245e05fbdbd6fb24
e23e00be39d36f3462e576a67a7f9199
18c79285b514c63fc9035e3f920ae477
da44dd192defd1be79f63c350d2920cf
4251c4c649c7d2f86327efde23992fa7
aae7b2d482382aaad75fde64df8ff86f
296f7ffc2e4545dc7792050ceb4a8711
6107ac1a55f1e0fecb7ddb60fb3bf109
aec2333321d73000161682d3c4ebc009
5005b3bf00050bf4f7e43ac33a0454b8
HEX解码不行,用MD5
flag{36D_me}

easy_base

image
base 16——base 32——base 64
image
image
image
ctfshow{yu_ren_j1e_haPpy!!!}

posted @   XIZen  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示