南京邮电大学CTF密码学部分Writeup
异性相吸
1.xor
2.hex2binary
3.len(bin(miwen))==len(bin(mingwen))
# -*- coding:utf-8 -*-
file_de = open('decode1.txt')
file_en = open('ene.txt')
de = file_de.read()
en = file_en.read()
s = ''
for i, j in zip(de, en):
s += chr(ord(i) ^ ord(j))
print s
file_de.close()
file_en.close()
MD5
明文:TASC?O3RJMV?WDJKX?ZM
MD5 密文:e9032???da???08????911513?0???a2
查了下 Python MD5的库,发现是内置了一个模块的:
http://www.cnblogs.com/the4king/archive/2012/02/06/2340660.html
暴力猜明文缺失字符。
import hashlib
s1 = "TASC"
s2 = "O3RJMV"
s3 = "WDJKX"
s4 = "ZM"
dict = ['0','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
for i in range(36):
for j in range(36):
for k in range(36):
src = s1 + dict[i] + s2 + dict[j] + s3 + dict[k] + s4
pre = hashlib.md5()
pre.update(src)
md5 = str(pre.hexdigest())
if ('e9032' and 'da' and '911513') in md5 :
print md5,' ',src
easy&base64&n次base64&mixed_base64
这几道题都是一个类型的……
import base64
with open('string.txt') as f:
s = f.read().replace('\n','')
while 1:
try:
s = base64.b16decode(s)
except:
try:
s = base64.b32decode(s)
except:
s = base64.b64decode(s)
if 'nctf' in s:
print s
break
KeyBoard
看键盘画图形,不过我没做对,想象力拙计……
骚年来一发吗
密文
iEJqak3pjIaZ0NzLiITLwWTqzqGAtW2oyOTq1A3pzqas
function encode($str){
$_o = strrev($str);
for($_0 = 0; $_0 < strlen($_o); $_0++){
$_c = substr($_o, $_0, 1);
$__ = ord($_c) + 1;
$_c = chr($__);
$_ = $_.$_c;
}
return str_rot13(strrev(base64_encode($_)));
没学过这种世界上最好的语言。去搜索了下 $ 貌似是“xx变量”的意思,暂且当成 CPP 来看了……然后直接搜一些函数语法:
substr() 返回字符串
strrev(string) 反转字符串
ord(string) 返回字符串中第一个字符的 ASCII 值
chr(ascii) 从指定 ASCII 值返回字符
(.) PHP 并置运算符,将两个字符串连接起来
执行完函数后得到一个字符串 $_
然后将这个字符串 base64 再反转再 ROT13 。
ROT13 实际上是凯撒加密的变体。,不过神奇的是,PHP 竟然自带 rot13 的函数。
解密的时候逆过来操作就好了。
我感到了智商缺陷,最开始在逆向操作 return那一行时从内层到外层写的……
import codecs
import base64
with open('rot13decode.txt') as f:
s = f.read().replace('\n', '')
flag = ""
s = codecs.encode( s,"rot13" )
s = s[::-1]
s = base64.b64decode(s)
for i in s:
s = s + chr(ord(i) - 1)
s = s[::-1]
print s
Vigenere
It is said that Vigenere cipher does not achieve the perfect secrecy actually
南京邮电大学CTF密码学部分Writeup的更多相关文章
- 南京邮电大学CTF隐写术部分Writeup
女神 听说这是女神的私房照,里面藏着flag哦 http://115.28.150.176/misc1.jpg 这个链接居然打不开,摔!万念俱灰!主办方可否给力点! P.S.为了方便日后学习,暂时列下 ...
- 南京邮电大学CTF密码学之MD5-golang与php代码实现
题目内容:这里有一段丢失的md5密文 e9032???da???08????911513?0???a2 要求你还原出他并且加上nctf{}提交 已知线索 明文为: TASC?O3RJMV?WDJKX? ...
- 南京邮电大学java程序设计作业在线编程第四次作业
王利国的的 "Java语言程序设计第4次作业(2018)" 详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:40 1.下列方法定义中,正确的是() A.doub ...
- 南京邮电大学java第一次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- 南京邮电大学java程序设计作业在线编程第三次作业
王利国的"Java语言程序设计第3次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60 1. 设有如下定义语句: String s1="My cat& ...
- 南京邮电大学java第二次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- 南京邮电大学java程序设计作业在线编程第二次作业
王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60 1. 表达式9==8&&3<7的运算结果是( ) ...
- 南京邮电大学java程序设计作业在线编程第一次作业
王利国的"Java语言程序设计第1次作业(2018)"详细 作业结果详细 总分:100 选择题得分:40 1. Java语言中,基本数据类型一共有( )种. A.16 B.2 C ...
- 南京邮电大学java程序设计作业在线编程第五次作业
王利国的"Java语言程序设计第5次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:50 1. 以下哪一个工具是Java的编译器?( ) A. ...
随机推荐
- Mac 安装nodejs
原文链接:http://blog.csdn.net/u010053344/article/details/50545304 Mac 安装nodejs 这几日因为需求需要又临时用到nodejs,之前安装 ...
- Jquery插件收集【m了慢慢学】
1. Simple Effects for Drop-Down Lists 一个jQuery插件用于将普通的select控件转成一个带有一些简单扩展效果的下拉列表. 2. X-editable 这个插 ...
- I Count Two Three HDU - 5878(暴力二分)
为甚么16年Qingdao Online 都是暴力题emm///... 先暴力预处理 然后lower _bound二分 #include <iostream> #include <c ...
- 【刷题】BZOJ 2190 [SDOI2008]仪仗队
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是 ...
- PKUWC Slay The Spire
题面链接 LOJ sol 好神啊.果然\(dp\)还是做少了,纪录一下现在的思维吧\(QAQ\). 我们首先可以发现期望是骗人的,要不然他乘的是什么xjb玩意. 其实就是要求所有方案的最优方案和. 因 ...
- 解题:CF825E Minimal Labels
题面 看起来似乎是个水水的拓扑排序+堆,然而并不对,因为BFS拓扑排序的话每次只会在“当前”的点中排出一个最小/大的字典序,而我们是要一个确定的点的字典序尽量小.正确的做法是反向建图,之后跑一个字典序 ...
- eclipse 支持 Robot framework 编辑环境
一.配置python 环境 1. 设置pydev库 打开Help -> Install New Software, 点击'Add',设置Name为“Pydev”,Loca ...
- POI上传,导入excel文件到服务器1
首先说一下所使用的POI版本3.8,需要用的的Jar包: dom4j-1.6.1.jarpoi-3.8-20120326.jarpoi-ooxml-3.8-20120326.jarpoi-ooxml- ...
- SystemV-IPC
这里记录的三种SystemV-IPC包括(消息队列,信号量以及共享内存) 1:标识符和键值 键值(key_t) : IPC结构的外部名(所谓外部名就是各用户进程可获得并操作的,通过它使用XXXget获 ...
- java程序实现鼠标绘图
import java.awt.*; import javax.swing.*; class Gstudy extends JFrame{ private int x1,y1,x2,y2; priva ...