crypto第一面后半部分

1.信息化时代

也许中国可以早早进入信息化时代,但是被清政府拒绝了。附件中是数十年后一位伟人说的话的密文。请翻译出明文(答案为一串中文!) 注意:得到的 flag 请包上 flag{} 提交

下载后是606046152623600817831216121621196386.

中文电报查询网页依次输入四位数字可得到:计算机要从娃娃抓起。    flag{计算机要从娃娃抓起}

 

 

 

 

2.凯撒?替换?呵呵

MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO} 注意:得到的 flag 请包上 flag{} 提交, flag{小写字母}

 

 

 flag{substitutioncipherdecryptionisalwayseasyjustlikeapieceofcake}记得去掉空格

 

3.猪圈密码

萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码。请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 flag 请包上 flag{} 提交

 

 

 

 猪圈密码 得出flag{WHENTHEPIGWANTTOEAT}记得换成小写字母

 

4.传统知识+古典密码

小明某一天收到一封密信,信中写了几个不同的年份
辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
信的背面还写有“+甲子”,请解出这段密文。

key值:CTF{XXX}

 

 

 28 30 23 8 17 10 16 30  +甲子 :88 90 83 68 77 70 76 90 

 

 

  ASCII码值:XZSDMFLZ

得到因数2  4(除去1和字符串长度)

  key=2:XMZFSLDZ   key=4:XSFZLDZM

古典密码是栅栏密码和凯撒密码,先栅栏密码解密,然后凯撒密码解密得到flag。偏移量-5

 

 

5.RSA1

p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852

复制代码
import gmpy2
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852
I = gmpy2.invert(q,p)
m1 = pow(c,dp,p)
m2 = pow(c,dq,q)
m = (((m1-m2)*I)%p)*q+m2
print(m)                               #10进制明文
print(hex(m)[2:])                      #16进制明文
print(bytes.fromhex(hex(m)[2:]))       #16进制转文本
复制代码

 

 

 

 网上找的代码操作一下出现{W31c0m3_70_Ch1n470wn}。很像flag{}。试一下,正确。

 

6.权限获得第一步

你猜这是什么东西,记得破解后把其中的密码给我。答案为非常规形式。 注意:得到的 flag 请包上 flag{} 提交Administrator:500:806EDC27AA52E314AAD3B435B51404EE:F4AD50F57683D4260DFD48AA351A17A8:::

 

 

 3617656

 

7.Old Fashion

Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l

old fashion古典,试试凯撒,没有规律,试试替换

 

 

 So the flag is n1_2hen-d3_hu1-mi-ma_a   flag{n1_2hen-d3_hu1-mi-ma_a}

 

8.世上无难事

以下是某国现任总统外发的一段指令,经过一种奇异的加密方式,毫无规律,看来只能分析了。请将这段语句还原成通顺语句,并从中找到key作为答案提交,答案是32位,包含小写字母。 注意:得到的 flag 请包上 flag{} 提交

VIZZB IFIUOJBWO NVXAP OBC XZZ UKHVN IFIUOJBWO HB XVIXW XAW VXFI X QIXN VBD KQ IFIUOJBWO WBKAH NBWXO VBD XJBCN NKG QLKEIU DI XUI VIUI DKNV QNCWIANQ XN DXPIMKIZW VKHV QEVBBZ KA XUZKAHNBA FKUHKAKX XAW DI VXFI HBN QNCWIANQ NCAKAH KA MUBG XZZ XEUBQQ XGIUKEX MUBG PKAWIUHXUNIA NVUBCHV 12NV HUXWI XAW DI XUI SCQN QB HZXW NVXN XZZ EBCZW SBKA CQ NBWXO XAW DI DXAN NB NVXAP DXPIMKIZW MBU JIKAH QCEV XA BCNQNXAWKAH VBQN HKFI OBCUQIZFIQ X JKH UBCAW BM XLLZXCQI XAW NVI PIO KQ 640I11012805M211J0XJ24MM02X1IW09

 

 

 THE KEY IS 640E11012805F211B0AB24FF02A1ED09    flag{640E11012805F211B0AB24FF02A1ED09}   还要转换为小写字母  flag{640e11012805f211b0ab24ff02a1ed09}

 

9.RSA3

c1=22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361
n=22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1=11187289
c2=18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397
e2=9647291

复制代码
import gmpy2
import binascii

c1=22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361
n=22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1=11187289
c2=18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397
e2=9647291

# 扩展欧几里得算法
# return (r,x,y) 其中,r为a和b的最大公约数,xy满足ax + by = 1
r, s1, s2 = gmpy2.gcdext(e1, e2)  # 计算s1,s2
m = (gmpy2.powmod(c1, s1, n) * gmpy2.powmod(c2, s2, n)) % n  # 计算明文m

m = hex(m)[2:]
print("明文数据为:0x" + m)
flag = binascii.unhexlify(m)
print(flag)
复制代码

 

 

 

网上找的代码,试一下:flag{49d91077a1abcb14f1a9d546c80be9ef}

 

10.Unencode

89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM]

unencode 在线解码

flag{dsdasdsa99877LLLKK}

 

11.RSA2

e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657

c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

复制代码
import gmpy2 as gp

e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657

c = 1404236709762526968075336735862094005756642821006841197842035271245211889964038265974368837660418790674942809574102019589357373603808018454538292939974334141888387257517962617026220285872115603533628471910603065785105113809651621334726987130635926210289591670727814825626736830905905212142180711602876651807511

for i in range(1, e):  # 在范围(1,e)之间进行遍历
    if (dp * e - 1) % i == 0:
        if n % (((dp * e - 1) // i) + 1) == 0:  # 存在p,使得n能被p整除
            p = ((dp * e - 1) // i) + 1
            q = n // (((dp * e - 1) // i) + 1)
            phi = (q - 1) * (p - 1)  # 欧拉定理
            d = gp.invert(e, phi)  # 求模逆
            m = pow(c, d, n)  # 快速求幂取模运算

print(m)  # 10进制明文
print('------------')
print(hex(m)[2:])  # 16进制明文
print('------------')
print(bytes.fromhex(hex(m)[2:]))  # 16进制转文本
复制代码

 

 

 flag{wow_leaking_dp_breaks_rsa?_98924743502}

 

12.[AFCTF2018]Morse

-..../.----/-..../-..../-..../...--/--.../....-/-..../-..../--.../-.../...--/.----/--.../...--/..---/--.../--.../....-/...../..-./--.../...--/...--/-----/...../..-./...--/...--/...--/....-/...--/...../--.../----./--.../-..

Morse解出 61666374667B317327745F73305F333435797D 提交错,上网查询发现这可能是个十六进制。转换一下

afctf{1s't_s0_345y}   即flag{1s't_s0_345y}

 

13.异性相吸

最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的。 注意:得到的 flag 请包上 flag{} 提交

密文:ἇ̀Ј唒ဃ塔屋䩘卖剄䐃堂ن䝔嘅均ቄ䩝ᬔ

key:asadsasdasdasdasdasdasdasdasdasdqwesqf

复制代码
key = open("key.txt", 'rb').read()
cipher = open("密文.txt", "rb").read()

flag = []
result = ""
for i in range(len(key)):
    flag.append(key[i] ^ cipher[i])
    result += chr(flag[i])
print(flag)
print(result)
复制代码

 

 

 

 

 

 

 

 flag{ea1bc0988992276b7f95b54a7435e89e} 

另一种方法不会

 

 14.还原大师

我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB????08?????51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交

复制代码
import re
from hashlib import md5

list_uppercase = [chr(i) for i in range(65, 91)]  # 大写
# list_lowercase = [chr(i) for i in range(97, 123)]  # 小写
# list_digits = [chr(i) for i in range(48, 58)]  # 数字
for i in list_uppercase:
  for j in list_uppercase:
    for k in list_uppercase:
      key = "TASC%sO3RJMV%sWDJKX%sZM" % (i, j, k)
      sign = md5(key.encode('utf8')).hexdigest().upper()
      if re.match(r"E903.{3}4DAB.{4}08.{5}51.{1}80.{2}8A.{1}", sign, re.I):
        print(sign)
        break
复制代码

E9032994DABAC08080091151380478A2 即flag{E9032994DABAC08080091151380478A2}

 

15.RSA

pub.key是个公钥文件

 

 

 e=65537

不会把模数转化为十进制,又找了一个公钥解密

 

 

 e=65537  n=86934482296048119190666062003494800588905656017203025617216654058378322103517 

分解n

  p=285960468890451637935629440372639283459  q=304008741604601924494328155975272418463

复制代码
import gmpy2
import rsa

e = 65537
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463

phin = (q-1)*(p-1)
d = gmpy2.invert(e, phin)

key = rsa.PrivateKey(n, e, int(d), p, q)

with open("flag.enc", "rb+") as f:
    f = f.read()
    print(rsa.decrypt(f, key))
复制代码

flag{decrypt_256}

 

16.RSAROLL

RSA roll!roll!roll!
Only number and a-z
(don't use editor
which MS provide)

{920139713,19}

n= 920139713,e=19
分解n 
 

 p=18443  q=49891

复制代码
# 已知n:920139713和e:19 大量密文c
# 用比较小的n分解模数得到p = 18443 q = 49891
# 由(p-1)(q-1)和e得到d
# pow(c,d,n)得明文

import gmpy2
n = 920139713
p =gmpy2.mpz(18443)
q =gmpy2.mpz(49891)
e =gmpy2.mpz(19)
phi_n= (p - 1) * (q - 1)
d = gmpy2.invert(e, phi_n)
print("d is:%d"%(d))
#d is:96849619
c = [704796792,752211152,274704164,18414022,368270835,483295235,263072905,459788476,483295235,459788476,663551792,475206804,459788476,428313374,475206804,459788476,425392137,704796792,458265677,341524652,483295235,534149509,425392137,428313374,425392137,341524652,458265677,263072905,483295235,828509797,341524652,425392137,475206804,428313374,483295235,475206804,459788476,306220148]
m = []
for i in c:
    m.append(pow(i,d,n))  #用i遍历c
print(m)
for i in m:
    print(chr(i),end='')
#flag{13212je2ue28fy71w8u87y31r78eu1e2}
复制代码

flag{13212je2ue28fy71w8u87y31r78eu1e2}

 

写完啦

 

 

posted @   clyhys  阅读(605)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示