异性相吸

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的更多相关文章

  1. 南京邮电大学CTF隐写术部分Writeup

    女神 听说这是女神的私房照,里面藏着flag哦 http://115.28.150.176/misc1.jpg 这个链接居然打不开,摔!万念俱灰!主办方可否给力点! P.S.为了方便日后学习,暂时列下 ...

  2. 南京邮电大学CTF密码学之MD5-golang与php代码实现

    题目内容:这里有一段丢失的md5密文 e9032???da???08????911513?0???a2 要求你还原出他并且加上nctf{}提交 已知线索 明文为: TASC?O3RJMV?WDJKX? ...

  3. 南京邮电大学java程序设计作业在线编程第四次作业

    王利国的的 "Java语言程序设计第4次作业(2018)" 详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:40  1.下列方法定义中,正确的是() A.doub ...

  4. 南京邮电大学java第一次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  5. 南京邮电大学java程序设计作业在线编程第三次作业

    王利国的"Java语言程序设计第3次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60  1. 设有如下定义语句: String s1="My cat& ...

  6. 南京邮电大学java第二次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  7. 南京邮电大学java程序设计作业在线编程第二次作业

    王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60  1. 表达式9==8&&3<7的运算结果是( ) ...

  8. 南京邮电大学java程序设计作业在线编程第一次作业

    王利国的"Java语言程序设计第1次作业(2018)"详细 作业结果详细 总分:100 选择题得分:40  1. Java语言中,基本数据类型一共有( )种. A.16 B.2 C ...

  9. 南京邮电大学java程序设计作业在线编程第五次作业

    王利国的"Java语言程序设计第5次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:50  1. 以下哪一个工具是Java的编译器?( ) A. ...

随机推荐

  1. Python批量文件重命名

    今天,得到一个里面都是图片的文件夹,但是图片都没有后缀,因此想用Pythton批量地为所有的文件加上".jpg"的后缀,代码如下: #-*- coding:utf-8 -*- #重 ...

  2. STM32CubeMX介绍、下载与安装

    一.简介 STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层.中间层.示例代码等.现在ST公司升级和维护的库主要就是STM32CubeMX的HAL库和标准外设库 ...

  3. 【bzoj4591】[Shoi2015]超能粒子炮·改 Lucas定理

    题目描述 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威力上有了本质的提 ...

  4. API接口测试中需要注意的地方

    1.检查接口返回的数据是否与预期结果一致. 2.检查接口的容错性,假如传递数据的类型错误时是否可以处理.例如是支持整数,传递的是小数或字符串呢? 3.接口参数的边界值.例如,传递的参数足够大或为负数时 ...

  5. 【2018ICPC沈阳】

    哈密顿距离转切比雪夫距离,多种颜色跟两种颜色没有区别,记录最大最小次大次小即可. 圆求交点.

  6. Java多线程相关的

    很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的 ...

  7. Luogu 2801 教主的魔法 | 分块模板题

    Luogu 2801 教主的魔法 | 分块模板题 我犯的错误: 有一处l打成了1,还看不出来-- 缩小块大小De完bug后忘了把块大小改回去就提交--还以为自己一定能A了-- #include < ...

  8. 使用Java连接HBASE过程中问题总结

    本文是我个人在连接服务器的HBASE过程的一些问题总结. 一.用户和主机名的设置 1.1 报错:Insufficient permissions(user=Administartor) 原因:本地ho ...

  9. 单点登录(十八)----cas4.2.x客户端增加权限控制shiro

    我们在上面章节已经完成了cas4.2.x登录启用mongodb的验证方式. 单点登录(十三)-----实战-----cas4.2.X登录启用mongodb验证方式完整流程 也完成了获取管理员身份属性 ...

  10. chromedriver 代理设置(账号密码)

    在使用selenium时遇到的一个问题 如何为chromedriver设置有密码的代理 在借鉴了stackoverflow上的答案 background.js var config = { mode: ...