2021年10月广东强网杯,CRYPTO的RSA AND BASE?
2021年10月广东强网杯,CRYPTO的RSA AND BASE?
下载附件,是一个txt
文件,打开,发现RSA
密文和类似base32
的变码表,也符合题目暗示:
.
.
RSA
题目照例先用CTF-RSA-TOOL
工具跑一下,发现跑得出来:
.
.
这应该是一层的flag
,而且看起来像base32
的四个等号,联想题目和TXT
文件中后面的BASE
码,可以猜出是BASE32
变码的加密,而且还有4位
未知:
.
.
.
(这里积累第一个经验)
首先通过和密文以及传统base32
的码表对比可以发现缺了2 T Y Z
四个字母,这四个字母共有24种
排列组合,可以用下面代码求出排列组合:
list1=['2','T','Z','Y']
len1=len(list1)
list2=[]
w=""
for i in list1:for j in list1:if j!=i:for k in list1:if k!=j and k!=i:for l in list1:if l !=k and l !=j and l !=i:w=i+j+k+llist2.append(w)
print(list2)
print(len(list2))
.
结果:
.
.
(这里积累第二个经验)
然后就是获取BASE32
的编码实现来替换码表了,由于我在网上找不到base32
的python
编码实现,而且我也不会GO
语言,没法直接替换封装函数码表,所以我用了我广州羊城杯
的BabySmc
技巧,通过下标对应来转为传统的base32
密文。
下标对应法,这就要了解base32
加密解密的本质了。
base32
加密是5*8
变8*5
,获取的5
个8
位数对应着0~32
内的范围,而base32
的基本字符表ABCDEFGHIJKLMNOPQRSTUVWXYZ234567不过是0~32
范围内对应的映射下标而已。
解密的时候也是用每个加密字符在0 ~32
范围的数来拆分解密,关键就是这个解密时的5
位数是怎么找的呢?是通过base32.index('加密字符')
来找对应的0 ~ 32
的下标。
所以加密字符表单的作用只是用来根据下标来映射5
位数的0~32
的范围而已,本质是0 ~64
的下标。
那么我们就可以通过一一对应的方法来把题目中新的加密表单的下标来对应原生的base32
加密下标了,因为base32
在线解密工具只能通过base32.index('加密字符')
来找0 ~ 32
的下标。
脚本如下,注意抽出'='
来,并且在最后要把'='
加上去,因为base32
解密必须是8
的倍数。
import base64
#key1="GHI45FQRSCX****UVWJK67DELMNOPAB3" #少了2TYZ
key1="GHI45FQRSCX" #变形表单1
key2="UVWJK67DELMNOPAB3" #变形表单2
base32="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" #传统表单
key3="TCMDIEOH2MJFBLKHT2J7BLYZ2WUE5NYR2HNG" #变形密文list1=['2TZY', '2TYZ', '2ZTY', '2ZYT', '2YTZ', '2YZT', 'T2ZY', 'T2YZ', 'TZ2Y', 'TZY2', 'TY2Z', 'TYZ2', 'Z2TY', 'Z2YT', 'ZT2Y', 'ZTY2', 'ZY2T', 'ZYT2', 'Y2TZ', 'Y2ZT', 'YT2Z', 'YTZ2', 'YZ2T', 'YZT2']
secret=""for i in list1:key4=key1+i+key2 #最终变形表单#print(key4)for m in key3: g=key4.index(m)secret+=base32[g]secret+='===='print(secret)print(base64.b32decode(secret))secret=""
结果:
.
.
.
总结:
1:
(这里积累第一个经验)
首先通过和密文以及传统base32
的码表对比可以发现缺了2 T Y Z
四个字母,这四个字母共有24种
排列组合,可以用下面代码求出排列组合
list1=['2','T','Z','Y']
len1=len(list1)
list2=[]
w=""
for i in list1:for j in list1:if j!=i:for k in list1:if k!=j and k!=i:for l in list1:if l !=k and l !=j and l !=i:w=i+j+k+llist2.append(w)
print(list2)
print(len(list2))
2:
(这里积累第二个经验)
然后就是获取BASE32
的编码实现来替换码表了,由于我在网上找不到base32
的python
编码实现,而且我也不会GO
语言,没法直接替换封装函数码表,所以我用了我广州羊城杯
的BabySmc
技巧,通过下标对应来转为传统的base32
密文。
.
下标对应法,这就要了解base32
加密解密的本质了。
base32
加密是5*8
变8*5
,获取的5
个8
位数对应着0~32
内的范围,而base32
的基本字符表ABCDEFGHIJKLMNOPQRSTUVWXYZ234567不过是0~32
范围内对应的映射下标而已。
.
解密的时候也是用每个加密字符在0 ~32
范围的数来拆分解密,关键就是这个解密时的5
位数是怎么找的呢?是通过base32.index('加密字符')
来找对应的0 ~ 32
的下标。
.
所以加密字符表单的作用只是用来根据下标来映射5
位数的0~32
的范围而已,本质是0 ~64
的下标。
.
那么我们就可以通过一一对应的方法来把题目中新的加密表单的下标来对应原生的base32
加密下标了,因为base32
在线解密工具只能通过base32.index('加密字符')
来找0 ~ 32
的下标。
.
脚本如下,注意抽出'='
来,并且在最后要把'='
加上去,因为base32
解密必须是8
的倍数。
解毕!敬礼!
2021年10月广东强网杯,CRYPTO的RSA AND BASE?相关推荐
- 2021年10月国产数据库排行榜:达梦反超OceanBase夺榜眼,TDSQL实现“四连增”,数据生态加速建设
2021年10月国产数据库排行榜已在墨天轮发布,本月共有150家数据库参与排名.我们可以用"半江瑟瑟半江红"来形容10月份数据库分数涨跌情况.除去分数没有变化的数据库,分数上涨和下 ...
- 计算机视觉最新进展概览2021年10月31日到2021年11月6日
参考计算机视觉最新进展概览2021年10月31日到2021年11月6日 - 云+社区 - 腾讯云 1.Learning Distilled Collaboration Graph for Multi- ...
- 2021年10月云短信报告出炉,腾讯云蝉联冠军
导语 北京博睿宏远数据科技股份有限公司(公司简称/股票简称:博睿数据,股票代码688229)十余年专注APM领域,已为超过2000余家大型企业提供专业数据服务. 长期以来企业短信市场一直缺乏客观的.可 ...
- 2021年10月国产数据库流行度排行解读 浅谈基础软件发展之道
2021年10月国产数据库流行度排名,与9月份的排名变化不大,TiDB依然状元,达梦一跃,超过OceanBase,排位第二,OceanBase屈居第三.同样令人意外的是孟女士回归,任正非曾经发言已经做 ...
- 江门市2021年高考成绩查询,2021年1月广东江门学业水平合格性考试成绩查询入口(已开通)...
从广东省教育考试院得知,2021年1月广东江门学业水平合格性考试成绩查询入口已开通,考生可登录广东教育考试服务网(www.eesc.com.cn)或广东省教育考试院官方微信(gdsksy)查询学考成绩 ...
- 2021年10月视频行业用户洞察:平台积极拥抱变革探索新机遇
目前中国移动视频领域活跃用户规模继续稳定波动,据易观千帆数据,10月中国移动视频活跃用户数达到9.92亿人.同时在用户使用时长方面小幅回升,用户使用时长达628.19亿小时. 在各个细分行业中,短视频 ...
- 李迟2021年10月知识总结
本文为 2021 年 10 月知识总结. 研发编码 C / C++ 无. golang 写了数字签名.数字信封的测试示例,了解了 RSA .AES 加解密,知道 AES 的密钥长度必须大于16字节. ...
- 2021年广东新高考学业水平考试成绩查询,2021年1月广东高中学业水平考试成绩查询时间及入口...
2021年1月广东高中学业水平考试成绩查询时间及入口2021-01-16 09:11:46文/丁雪竹 2021年1月广东普通高中学业水平考试成绩查询入口预计2月上旬开通,考生可通过广东教育考试服务网( ...
- 广东9月计算机二级考试时间,2021年9月广东计算机等级考试时间:9月25日-27日
[导语]从<2021年9月广东考区全国计算机等级考试报考简章>中获悉,2021年9月广东计算机等级考试时间定于9月25日-27日期间,具体安排及科目如下: 2021年9月(第62次)NCR ...
- 抑郁症/新药等最新研究成果进展(2021年10月)
Neuroscience:基于甲基供体的疗法或能改善机体的氧化性压力 从而有望治疗人类抑郁症和焦虑症 2021-10-15报道,近日,一篇发表在国际杂志Neuroscience上题为"Eff ...
最新文章
- 人工智能技术在美国国家安全领域的应用
- datagridview新增列在最后_数说|科创板2020:募资额2200+亿超主板列A股第一,科技“千元股”、“市值王”长成...
- SQL 技巧-ORACLE
- Laravel-admin hasMany表单关联提交报错字段 无详细信息错误说明
- python中set()函数==》创建一个无序不重复的元素集(创将一个集合)
- Unity 利用NGUI做屏幕分辨率适配+学习UIDraggablePanel的使用
- Spring Boot 学习之,数据库三 ,事务
- java读取局域网种大华摄像机信息
- Alexa Top 1000000
- python floor函数_Python floor() 函数 - Python 教程 - 自强学堂
- 华为超级技术大牛的十年经验总结
- HDU 3954 level up 线段树
- 解决微信公众号链接被举报的问题
- 制作自己的人脸识别系统
- 《程序员》2012年12期精彩内容:2012这一年
- 认知无线电网络架构与协议体系
- 钉钉新上线的「文字表情」功能--原来消息还可以这么回!
- Raphael成图中的一点注意
- PHP Framework 数据库框架 Medoo 2.1:使用 Medoo 连接MYSQL数据库
- 什么是分布式配置中心?