一些Crypto的基础题
文章目錄
- 前言
- 一:一眼就解密 base64 SElTX1NUUklOR30=
- 二:看我回旋踢 synt{:凱撒密碼
- 三:password
- 四:變異凱撒 ASCII
- 五:Quoted-printable =E9=82=A3
- 六 Rabbit加密 U2FsdGVkX1/
- 七:籬笆墻的影子:柵欄加密
- 八:RSA
- 九:丟失的MD5 unicode
- 十:Alice與Bob素數分解 使用yafu工具,md5
- 十一:rsarsa
- 十二:凱撒大帝
- 十三:windows系統密碼 md5加密 :::
- 十四:信息化時代下的步伐 數字轉中文
- 十五:傳統知識+古典密碼 柵欄密碼與凱撒密碼 辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
- 十六:凱撒?替換?呵呵 暴力破解網站
- 十七 豬圈密碼
- 十八:RSA1
- 歐拉函數
- 歐拉定理
- 模反元素
- RSA算法
- 十九:old fashion 爆破工具
- 二十 js表情包轉換
- 二十一:Cipher
- 二十二:摩斯密碼01版
- 二十三 HEX密碼 666c61677b57336c63306d655f54305f4354467d
- 二十四 base family
- 二十三 HEX密碼 666c61677b57336c63306d655f54305f4354467d
- 二十四 base family
前言
并非完全的原創,有些是參考了網上的wp,在這里做個整理,如果侵權可以私信聯系。
一:一眼就解密 base64 SElTX1NUUklOR30=
ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=
有等于號是bace64的特征
CTF在線工具-在線base編碼|在線base解碼|base16編碼|base32編碼|base64編碼 (hiencode.com)
二:看我回旋踢 synt{:凱撒密碼
密碼:synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
此為凱撒密碼,網址為:
凱撒密碼在線計算-ME2在線工具 (metools.info)
為什么加密位移為13:一個個試出來,如果顯示為flag,則加密位移為13
三:password
這個題目簡直有毒,但是看題解分析密碼有十個,張三19900315正好十個數字
flag{zs19900315}
四:變異凱撒 ASCII
在密碼學中,愷撒密碼(英語:Caesar cipher),或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。
前三個字母afZ_對應flag,而凱撒密碼也意味著字母的對應是符合順序規律的
我們查看ASCII表
a:97 f:102 Z:90 _:95
f:102 l:108 a:97 g:103
分別相差:5 6 7 8
afZ_r9VYfScOeO_UL^RWUc
寫出腳本
ciphertext = 'afZ_r9VYfScOeO_UL^RWUc' j = 5 for i in ciphertext:print(chr(ord(i) + j), end='')j += 1最后求出flag:flag{Caesar_variation}
五:Quoted-printable =E9=82=A3
打開看到是這個樣子
網絡管理員在線工具 - Quoted-Printable (mxcz.net)
六 Rabbit加密 U2FsdGVkX1/
Rabbit加密-Rabbit解密-在線Rabbit加密解密工具 (jsons.cn)
七:籬笆墻的影子:柵欄加密
felhaagv{ewtehtehfilnakgw}
柵欄密碼在線加密解密 - 千千秀字 (qqxiuzi.cn)
每組數字為2加密后:
flag{wethinkwehavetheflag}
暴力破解
柵欄密碼(Rail-fence Cipher)就是把要加密的明文分成N個一組,然后把每組的第1個字符組合,每組第2個字符組合…每組的第N(最后一個分組可能不足N個)個字符組合,最后把他們全部連接起來就是密文,這里以2欄柵欄加密為例。
felhaagv{ewtehtehfilnakgw}
flag,f與l之間有一個字母,所以柵欄數目為2,我們直接分離后變成
flag{wethinkw
ehavetheflag}
八:RSA
此題主要了解RSA如何使用
打開RSAtools,輸入的e要轉換為16進制,輸入R和Q并按CAL.D即可得到D
flag{125631357777427553}
九:丟失的MD5 unicode
打開來發現是python代碼
我們把語法修正一下
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)運行后發現報錯
就是在使用hashing之前需要對unicode進行編碼
將字符轉化為utf-8即可
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)十:Alice與Bob素數分解 使用yafu工具,md5
題目描述
使用指令
下一步:md5的32位小寫hash,意思是進行md5加密且選擇32位的那一個
網站
md5在線解密破解,md5解密加密 (cmd5.com)
101999 966233
直接輸入即可,不需要選擇類型
十一:rsarsa
題目描述:
一般情況下都是選擇十進制,rsa工具要求出D
得到D,一定要黏貼完成
56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977
給出了C,說明需要用到python的快速求冪取模運算
p=9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483 q=11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407 n=p*q C=83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034 d=566320475711906605675203410288611948624114284168625070347625872299951386056498369602206199034563927521159432993353851632162337446246238488742353033096363934467363472386277930227252609864669579747530041292106804014323774449841951450098019673911966155 M=pow(C,d,n) print(M)最后得到
5577446633554466577768879988
十二:凱撒大帝
看題目意思是用凱撒解密將FRPHEVGL解密后會得到一個我們熟悉的單詞,然后同解密的方式加密ComeChina可以得到flag
然后腦袋想想估計不會是很復雜的偏移,直接拖到網站好了
一個個解密在偏移量到13的時候出現單詞SECURITY,覺得就是他了,然后把comeChina進行加密得到flag
十三:windows系統密碼 md5加密 :::
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
密碼是:與:::之間,windows密碼一般是md5加密
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fmQYgJa6-1649124329248)(https://raw.githubusercontent.com/lllwky/botany/main/img/image-20220331235441007.png)]
每個密碼都試一下得到flag
十四:信息化時代下的步伐 數字轉中文
數字轉中文使用中文電碼工具
中文電碼查詢 Chinese Commercial Code - 標準電報碼免費在線查詢|姓名電碼|美國簽證電碼 (mcdvisa.com)
十五:傳統知識+古典密碼 柵欄密碼與凱撒密碼 辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
題目描述
2830230817101630+60即每個數字都加60
88 90 83 68 77 70 76 90
兩個數字對應一個字母,想到ASCII表
查表可得 X Z S D M F L Z
古典加密一般為柵欄密碼與凱撒密碼,都丟進去試試
不知道為什么上一個柵欄密碼解答和網絡上的題解不太一樣
CTF在線工具-在線柵欄密碼加密|在線柵欄密碼解密|柵欄密碼算法|Railfence Cipher (hiencode.com)
這個題目天干地支都是以2計數,所以柵欄密碼為2
然后再丟到凱撒密碼一個個試
flag{SHUANGYU}
記住是大寫且要包上flag
十六:凱撒?替換?呵呵 暴力破解網站
這個題目與好野蠻
MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}
來個暴力破解網站嘍
quipqiup - cryptoquip and cryptogram solver
選擇第一個去掉空格就是flag
flag{substitutioncipherdecryptionisalwayseasyjustlikeapieceofcake}
十七 豬圈密碼
題目描述:
打開發現是一張圖片
CTF在線工具-在線豬圈密碼加密|在線豬圈密碼解密|豬圈密碼算法|Pigpen Cipher (hiencode.com)
真是可愛的一道題啊
十八:RSA1
RSA算法原理 - 知乎 (zhihu.com)
之前只是學會了如何使用工具,這題開始認真學會RSA算法
互質關系:如果兩個正整數,除了1以外,沒有其他公因子,則稱他們為互質關系
歐拉函數
任意給定正整數n,在小于等于n的正整數之中,有多少個與n構成互質關系,用 φ(n)表示
若n為質數,φ(n)=n-1。
若n是指數的某一次方即n=pk,則φ(pk)=pk-p(k-1)
若n=pq(兩個質數)
則φ(n)=φ(pq)=φ§φ(q)
歐拉定理
如果兩個正整數a和n互質,則a的φ(n)次方-1可以被n整除。
模反元素
如果a與n互為質數,則一定可以找到整數d使得pd-1能被n整除
記作da=1(mod n)
RSA算法
1:隨機選取兩個不相等的質數p和q
2:計算p與q的乘積n
3:計算n的歐拉函數φ(n)
4:隨機選取整數e,e與φ(n)互質
5:計算出e對于φ(n)的模反元素d
題目如下
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-aZoq0ceo-1649124329261)(https://raw.githubusercontent.com/lllwky/botany/main/img/image-20220401163349449.png)]
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229 q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469 dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929 dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041 c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852import gmpy2 d = gmpy2.invert(q,p) mp = pow(c,dp,p) mq = pow(c,dq,q) #求冪取模運算m = (((mp-mq)*d)%p)*q+mq #求明文公式print(hex(m)) #轉為十六進制如果c與p互為質數,則一定可以找到整數d使得dp-1能被c整除
記作da=1(mod n)
最后的結果
再十六進制轉文本
16進制轉換,16進制轉換文本字符串,在線16進制轉換 | 在線工具 (sojson.com)
noxCTF{W31c0m3_70_Ch1n470wn}將noxCTF轉換為flag{}
十九:old fashion 爆破工具
不會的統一用爆破工具吧
quipqiup - cryptoquip and cryptogram solver
二十 js表情包轉換
打開文件發現
進入轉換網站
aaencode - Encode any JavaScript program to Japanese style emoticons (_) (utf-8.jp)
按F12打開控制臺
然后輸出即可得到flag
二十一:Cipher
打開破解網站
Playfair Cipher (rumkin.com)
密鑰根據題目公平的玩吧,是playfair
flag{itisqstaproblegmavefip}
(要把大寫改為小寫)
二十二:摩斯密碼01版
這題的題目找不到了,那就直接上代碼吧
s = '0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0 000 1 01111 10 11110 101011 1111101' b=s.replace('0', '.') print(b.replace('1','-'))然后再用網站進行破解
二十三 HEX密碼 666c61677b57336c63306d655f54305f4354467d
與base64很像但是沒有=所以為hex
Hex編碼/解碼-在線工具 (toolbaba.cn)
二十四 base family
最后發現是base91
BASE91編碼解碼 - Bugku CTF
得到base64再進入base64進行解密
解密工具集合
在線工具 - Bugku CTF
int(b.replace(‘1’,‘-’))
然后再用網站進行破解
二十三 HEX密碼 666c61677b57336c63306d655f54305f4354467d
與base64很像但是沒有=所以為hex
Hex編碼/解碼-在線工具 (toolbaba.cn)
二十四 base family
最后發現是base91
BASE91編碼解碼 - Bugku CTF
得到base64再進入base64進行解密
解密工具集合
在線工具 - Bugku CTF
總結
以上是生活随笔為你收集整理的一些Crypto的基础题的全部內容,希望文章能夠幫你解決所遇到的問題。