CTF密码学Crypto1


CTF解密工具:
1.http://ctf.ssleye.com
2.https://tool.bugku.com

1.Morse code(摩尔斯密码)

特点:
用两种“符号”来表示字符:点(.)和划(-)
在这里插入图片描述在这里插入图片描述
通过写python脚本来解决:

ASCLL = input("Enter the string:")
L = ASCLL.split()
ascll ={'01': 'A','1000': 'B','1010': 'C','100':'D','0':'E','0010':'F','110': 'G','0000': 'H','00': 'I','0111':'J','101': 'K','0100': 'L','11': 'M','10': 'N','111': 'O','0110': 'P','1101': 'Q','010': 'R','000': 'S','1': 'T','001': 'U','0001': 'V','011': 'W','1001': 'X','1011': 'Y','1100': 'Z','01111': '1','00111': '2','00011': '3','00001': '4','00000': '5','10000': '6','11000': '7','11100': '8','11110': '9','11111': '0','001100': '?','10010': '/','101101': '()','100001': '-','010101': '.','110011':',','011010':'@','111000':':','101010':':','10001':'=','011110':"'",'101011':'!','001101':'_','010010':'"','10110':'(','1111011':'{','1111101':'}'
}
for item in L:
    print(ascll[item],end='')

摩尔斯电码与ASCLL关系:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2. 栅栏密码

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

加密原理:百度百科有详细介绍。
在这里插入图片描述

3. 恺撒密码

恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。
在这里插入图片描述

4.Ook!编码

在这里插入图片描述直接用工具解密就行。
Ook!的变形题目:
在这里插入图片描述
学会观察题目特点,快速突破。

5.Brainfuck编码

只有八种指令
在这里插入图片描述指令输出的字符是根据ASCII表.
在这里插入图片描述
得到类似这样的字符串:++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++.>+.+++++++…+++.<<++.>+++++++++++++++.>.+++.------.--------.<<+.<.
用解密工具解密即可。

6.Base64编码

特点:Base64字符表由a-z,A-Z,0-9,/,+构成,编码后末尾可能有=号在这里插入图片描述
这个题就是恺撒密码与base64编码的混合加密,由字符串末尾的AA可以考虑是否为base64中的 ==。由Ascll知‘A’与‘=’相差4个位,写一个python脚本将所有字符都偏移4位:

a = 'e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA'
i = 0
flag = ''
while i < len(a):
    num = ord(a[i])-4
    flag += chr(num)
    i +=1
print(flag)

得到如下结果:

a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ==

用base64解密工具进行解密:
在这里插入图片描述
得到Flag为:key{68743000650173230e4a58ee153c68e8}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值