实验吧密码学WriteUp 三)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
1.兔子你好(http://www.shiyanbar.com/ctf/1815)
兔子即为rabbit,按照提示rabbit解码即可
2.凯撒和某某加密 (http://www.shiyanbar.com/ctf/1822)
凯撒的话平时碰到的都是跟着字母表移位的,这里也没有多少字母,自然想到根据ascii来移位,可是移几位呢,要知道最后的格式中一定有{,},f,l,a,g等,于是就试着看看移动多少位能得到这些,或者也可以用pyhton跑,脚本如下:
-- coding:utf-8 --
import string
def foo():
s=”aZZg/x\ZbavpZiEZp+n)o+”
#ascii码表中可打印的字符
a=string.maketrans(”, ”)[33:127]
for n in xrange(0,26):
b=a[n:]+a[:n]
table=string.maketrans(a,b)
print string.translate(s,table)
pass
if name == ‘main‘:
foo()
print ‘ok’
得到了其中最像的结果:f__l4}a_gf{u_nJ_u0s.t0
用脚指头想想都知道是栅栏加密
解密即可
3.一串奇怪的数(http://www.shiyanbar.com/ctf/1824)
(引用pcat,侵删)
这题有提供加密程序,其实看懂后,最关键的是加密密码,如果不知道,就坑爹了,除非暴力破解匹配结果是否存在密钥的格式,鉴于这题密码为空,我就提供下面的python代码(如果觉得非要暴力破密码,自己加个循环读取密码字典之类,再判断结果是否符合密钥格式即可),程序理解不难,我就不赘述了。题目给出的密文解出来是4组密钥(附带4个\n),提交最后一组密钥即可。
-- coding: utf8 --
import hashlib
def md5(s):
return hashlib.md5(s).hexdigest()
def evalCrossTotal(strMd5):
r = 0
for i in strMd5:
r += int(“0x%s” % i, 16)
return r
def encryptString(strString, strPasswd):
strPasswdMd5 = md5(strPasswd)
intMd5 = evalCrossTotal(strPasswdMd5)
r = []
for i in range(len(strString)):
r.append(ord(strString[i]) + int(“0x%s” % strPasswdMd5[i%32], 16) - intMd5)
intMd5 = evalCrossTotal(md5(strString[:(i+1)])[:16] + md5(str(intMd5))[:16])
return ” “.join(map(lambda x: str(x), r))
以下就是自己写的
def decryptString(nList,strPasswd):
strPasswdMd5 = md5(strPasswd)
intMd5 = evalCrossTotal(strPasswdMd5)
r = “”
for i in range(len(nList)):
r+=chr(nList[i] - int(“0x%s” % strPasswdMd5[i%32], 16) + intMd5)
intMd5 = evalCrossTotal(md5(r[:(i+1)])[:16] + md5(str(intMd5))[:16])
return r
def foo():
s=”-149 -234 -157 -132 -187 -140 -157 -241 -158 -177 -85 -215 -180 -187 -173 -218 -161 -183 -133 -226 -136 -171 -126 -169 -155 -96 -169 -240 -163 -153 -137 -111 -123 -191 -151 -213 -151 -142 -152 -208 -118 -137 -136 -244 -157 -168 -187 -201 -170 -176 -192 -209 -205 -174 -163 -189 -126 -133 -148 -194 -145 -212 -170 -155 -148 -165 -167 -206 -171 -177 -88 -173 -125 -129 -129 -235 -121 -190 -161 -165”
nList=eval(‘[%s]’ %s.replace(’ ‘,’,’))
strPasswd=” #密码为空
print decryptString(nList,strPasswd)
if name == ‘main‘:
foo()
print “ok”
pass
4.Play(http://www.shiyanbar.com/ctf/1825)
play的加密方式,百度可得playfair,依照百科中playfair的定义,先构造5*5密码表,
s n f m t
h b g o u
i c j p v
y d k q w
a e l r x
如何构造?
先填充给出的密钥,后面再填充其他没出现过的字符,最后丢弃频率低的(一般是z)
把密文KQSAMFPAOPMFPA两两分组
kq sa mf pa op mf pa
按照playfair的解密方法,得到结果
5.RSA实践(http://www.shiyanbar.com/ctf/1828)
工具RSA-Tool 2 by tE!
6.Decode(http://www.shiyanbar.com/ctf/1831)
Decode,肯定是运用各种编码解码
0x标识表明这是十六进制编码,解码得到一串百分号打头的编码:
这是URL编码,解码,得到:
.xCjEwOQoxMDEKMTE2CjExMQoxMTUKMTA0CjEwNQoxMjEKOTcKMTEwCjk4Cjk3CjExNA==
串尾后面的==号很明显地暴露了这是Base64,再次解码一系列数字,这是ASCII码,解码得到flag
加上flag格式后就可以提交了ctf{welc??????????????}
7.敌军情报(http://www.shiyanbar.com/ctf/1858)
数字联想到奥ASCII码值对应成字符,得到“-.-. - ..-. .- ”
解密摩斯电码即可
8.奇妙的音乐(http://www.shiyanbar.com/ctf/1862)
海伦凯勒可以猜到图片下方是盲文,解码得到.zip的解压密码
将音频拖入Audicity,可以看到波形是摩斯
解密即可
9.困在栅栏里的凯撒(http://www.shiyanbar.com/ctf/1867)
题目提示,那肯定涉及到栅栏密码和凯撒密码,
栅栏:首先分栏
12位只能是2*6或6*2,根据题意6,所以分6栏,结果为NEQ{etIYdsf}
然后用凯撒解密即可
10.古典密码(http://www.shiyanbar.com/ctf/1870)
将Ascii码转换为字母,得到OCU{CFTELXOUYDECTNGAHOHRNFIENM}IOTA
再尝试栅栏(准确说,是类似栅栏的思想)
35=7*5
OCU{CFT
ELXOUYD
ECTNGAH
OHRNFIE
NM}IOTA
根据flag的格式CTF..来调整
得到
CTF{COU
LDYOUEX
CHANGET
HEINFOR
MATION}
CTF{COULDYOUEXCHANGETHEINFORMATION}
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
![](/assets/blank.gif)
实验吧密码学WriteUp 三)相关推荐
- 实验吧-密码学(三)
21.我喜欢培根 key: CTF{} 解题链接: http://ctf5.shiyanbar.com/crypto/enc1.txt 打开链接后: -- --- .-. ... . ..--.- . ...
- 实验吧密码学WriteUp 四)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1.疑惑 ...
- 实验吧密码学WriteUp 一)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 这个系列 ...
- 计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础
计算机网络安全技术-实验一-密码学基础 计算机科学与技术系实 验 报 告专业名称 网络工程 课程名称 计算机网络安全技术 项目名称 密码学 班 级 13 网工(1)班 学 号 1304031030 姓 ...
- python程序的三种基本结构是_Python程序设计实验五- 综合运用三种基本结构进行程序设计...
安徽工程大学 [Python程序设计]实验报告 班级 :物流192 姓名:刘娇阳 学号:3190505213 成绩: 日期:2020.4.24 指导老师 :修宇 [实验名称]实验五 综合运用三种基本结 ...
- C#强化系列文章三:实验分析C#中三种计时器使用异同点
C#中提供了三种类型的计时器: 1.基于 Windows 的标准计时器(System.Windows.Forms.Timer) 2.基于服务器的计时器(System.Timers.Timer) 3.线 ...
- 通过实验取证:TCP三次握手的过程
通过实验取证:TCP三次握手的过程 理解TCP/IP协议的工作原理 多年来TCP/IP协议一直被公众称呼为"一个协议",事实上它是一组协议的集合,IP工作在OSI七层模型的网络层, ...
- matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现
光学实验数值仿真的三种方法及 MATLAB实现 5 结 论 (1)数值模拟结果表明三种方法都能对光学 实验现象进行正确地仿 真,因此在课 堂教学 中适 当应用这种仿真模拟 ,将光学实验 中复杂的数学 ...
- 实战ATTCK攻击链路--靶场Writeup(三)
文章来源|MS08067 安全练兵场 知识星球 本文作者:godunt(安全练兵场星球合伙人) 玩靶场 认准安全练兵场 成立"安全练兵场"的目的 目前,安全行业热度逐年增加,很多新 ...
最新文章
- rowid会变化么_升级后的饿了么,将成为阿里引领数字化的先锋
- java中可重入锁的学习总结
- php+jquery实现图片上传预览_和拖动位置值,PHP教程:thinkphp jquery实现图片上传和预览效果...
- Initialization of bean failed; nested exception is org.springframework.beans.factory.: 错误分析
- matlab拟合高次相,matlab 多元高次非线性函数拟合,回归,求教高手!
- python snmp 自动化2-在python中使用snmp
- 那些在错误道路上一路狂奔的国产VR
- bzoj4152 [AMPPZ2014]The Captain
- mysql锁问题吗_Mysql锁的问题和解析
- [SimplePlayer] 6. 音频同步
- Apollo进阶课程 ⑤ | Apollo硬件开发平台介绍
- 各类图像数据大集合(下载链接)
- #151: 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-x...
- 国外的大龄程序员在干什么?
- 计算机键盘符号称呼,电脑键盘上特殊符号和标点符号名称的输入方法汇总
- 猿编程python怎么样_猿编程怎么练习编程 让你提前熟悉代码
- 红米10x android11,红米10X 5G版刷机包MIUI11
- 自定义控件——圆形圆点进度条(仿安全卫士中的一键加速)
- 一文详解像素、DPI、分辨率之间的关系
- 去掉Nero 8刻录时激活三方专利组件的提示框