一些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的基础题相关推荐
- 某次ctf 中crypto的基础题
文章目录 一.题目描述 二.解题分析 1.分析过程 2.还原加密 总结 一.题目描述 打开题目链接文件,一看妥妥的python代码,最后一行print函数后面注释了一串字符串: ]$^<[< ...
- python代码基础题-python第一部分基础题1-80题
各位Python的第一部分1-80道基础题已经整理好了,希望面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之 ...
- python代码基础题-python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- linux面试题-基础题1
linux面试题-基础题1 第1章 基础题1 1.1 在装系统创建Linux分区时,一般至少需要创建两个分区( ) A.FAT.NTFS B. /usr.swap C. /boot.swap ...
- 思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...
| 基本C语言基础题 1 ? .? 用预处理指令#define? 声明一个常数,用以表明1 年中有多少秒(忽略闰年问题)? #define? SECONDS_PER_YEAR ? (60 ? *? 6 ...
- 微型计算机最早提出于,计算机基础题1、世界上第一台电子计算机诞生于A)1943年B-查字典问答网...
计算机基础题 1.世界上第一台电子计算机诞生于 A)1943年B)1946年 C)1945年D)1949年 2.世界上公认的第一台电子计算机的逻辑元件是 A)继电器B)晶体管 C)电子管D)集成电路 ...
- python基础题面试_python常见面试题
面试自动化会遇到的面试题,分享一波,就不排版了,多多见谅. 先上几道编程题 001 求数值以内的质数,合数及个数 #质数 defzhishu(number): num=0for i in range( ...
- [基础题] * 9.(*)设计一个Student接口,以一维数组存储一个班级的学生姓名。
/*[基础题] * 9.(*)设计一个Student接口,以一维数组存储一个班级的学生姓名. * 该接口中有一个抽象方法getStudentName(). * 设计一个类Union,该类实现接口 ...
- Jam's balance HDU - 5616 (01背包基础题)
Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...
最新文章
- python:自动化测试 playwright 库上传和下载
- 皮一皮:晚上千万千万别乱拍照...
- python3基础语法-Python3的一些基础语法介绍和理解
- 判断图有无环_【转】判断一个图是否有环 无向图 有向图
- MAC OS 修改环境变量
- 【转载】Oracle关于expdp、impdp以及rman介绍
- sqliteman安装错误
- PHP语言面对对象编程之继承
- cp正在写入文件导致文件内容不一致
- 20余年互联网沉浮史:剩者为王
- 练习时长两年半的Matlab
- 计算机考证忘记密码了怎么办,计算机忘记开机密码怎么办?
- 软件开发过程与项目管理
- 我用 140 行代码,带你看一场流星雨⭐
- 两位共阳极数码管c语言,89c51驱动两位共阳极数码管倒计时显示程序,60秒到30秒能实现,但从30秒到90秒不能实现,请高手帮忙!...
- python编写年金终值函数_财码Python管理会计小实验—投融资管理之货币时间价值...
- ICO和区块链的关系
- 【C进阶】之动态内存分配及内存操作函数
- 京东 ChubaoFS 分布式文件系统分析
- RGB转换HSL,HSV及切割车牌