每天10道 Crypto Day4

1.[网鼎杯 2020 青龙组]boom

用cmd打开,运行boom.exe

在这里插入图片描述在这里插入图片描述
开始玩一个小游戏
1.第一关
在这里插入图片描述
md5 解密后就得到了答案

在这里插入图片描述

2.第二关
在这里插入图片描述

这里用到一个优秀的python第三方库,Python科学计算利器——SymPy库

from sympy import*
from sympy.abc import x,y,z

ABC = solve([3*x-y+z-185,2*x+3*y-z-321,x+y+z-173],[x,y,z])
print(ABC)

'''
m = solve([x*x+x-7943722218936282],[x])

print(m)
'''

{x: 74, y: 68, z: 31}

3.第三关
在这里插入图片描述
用上面的代码就行

flag{en5oy_746831_89127561}

2.[AFCTF2018]你听过一次一密么?

3.[BJDCTF2020]编码与调制

由题目可知,考的是曼彻斯特编码

密文:2559659965656A9A65656996696965A6695669A9695A699569666A5A6A6569666A59695A69AA696569666AA6

用网上找到曼彻斯特解码器,解密文,将解密得到后的16进制转文本,即可得到flag

在这里插入图片描述

flag{DifManchestercode}

4.[AFCTF2018]BASE

from base64 import *
s = ""
with open('flag_encode.txt', 'r') as file:
    s = bytes(file.read(),'ascii')
    file.close()

lis1 = [s]
lis2 = []
lis3 = []
lis4 = []
while(1):
	for a in lis1:
		ok = 0
		try:
			lis2.append(b64decode(a).decode('ascii'))
			ok = 1
		except:
			pass
		try:
			lis2.append(b32decode(a).decode('ascii'))
			ok = 1
		except:
			pass
		try:
			lis2.append(b16decode(a).decode('ascii'))
			ok = 1
		except:
			pass
		if not ok:
			lis3.append(a)
	if not len(lis2):
		break
	lis1=lis2.copy()
	lis2.clear()
for a in range(0,len(lis3)):
	ok = 1
	for b in lis3[a]:
		if ord(b)>126 or ord(b)<32:
			ok = 0
			break
	if ok:
		lis4.append(lis3[a])
print(lis4)

afctf{U_5h0u1d_Us3_T00l5}

5.[NPUCTF2020]Classical Cipher在这里插入图片描述

Atbash加密, pvb 与 key 在字符表中的顺序正好是相对称的。
在这里插入图片描述

压缩包解压后得到的jpg图片,是猪圈密码的变体和古埃及象形文字。
在这里插入图片描述
猪圈变体
在这里插入图片描述
古埃及象形

在这里插入图片描述

flag{classicalcode}

6.[WUSTCTF2020]情书

题目

Premise: Enumerate the alphabet by 012.....25
Using the RSA system 
Encryption:0156 0821 1616 0041 0140 2130 1616 0793
Public Key:2537 and 13
Private Key:2537 and 937

flag: wctf2020{Decryption}

新建flag.txt文本

在这里插入图片描述

解密代码

from gmpy2 import*

n=2537
d=937

result = []
with open('flag.txt') as f:
        for i in f:
                result.append(pow(int(i),d,n))

print(result)                

得到结果
[8, 11, 14, 21, 4, 24, 14, 20]

找到其对应 的英文,从0开始的。

flag{iloveyou}

8.[UTCTF2020]basic-crypto

解压后得到一堆二进制字符,尝试转为16进制,再转为文本。
在这里插入图片描述
在这里插入图片描述
通过提示我们可以知道,下面的那一段是base64编码。

在这里插入图片描述
base的解密结果提示下面的密文与罗马有关,用quipqiup进行词频分析。

爆破全部密文都是乱码,没有结果,我们只需要爆破与flag相关的那一段就行了。

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

得到utflag{n0w_th4ts_wh4t_i_c4ll_crypt0}

9.[UTCTF2020]hill

s='wznqcaduqopfkqnwofDbzgeu'
flag_pre='utflag'
def getit(a1,b1,c1,a2,b2,c2,a3,b3,c3):
    for i in range(26):
        for j in range(26):
            if (a1 * i + b1 * j) % 26 == c1 and (a2 * i + b2 * j) % 26 == c2 and (a3 * i+b3*j) % 26 == c3:
                return (i,j)
x1=getit(22,25,20,13,16,5,2,0,0)
x2=getit(22,25,19,13,16,11,2,0,6)
import string
flag=''
for i in range(0, len(s),2):
    flag+=string.ascii_letters[(x1[0]*string.ascii_letters.index(s[i])+x1[1]*string.ascii_letters.index(s[i+1]))%26]
    flag+=string.ascii_letters[(x2[0]*string.ascii_letters.index(s[i])+x2[1]*string.ascii_letters.index(s[i+1]))%26]
print(flag)

#utflagdngeruscphertextqq

10.四面八方

flag{youngandsuccessful}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值