异性相吸

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. iOS 数据库sqlite完整增删改查操作

    1: 创建数据库表格 1.1 — 表格创建使用一个数据库软件快速创建:软件大小14.3M; 下载地址:http://pan.baidu.com/s/1qWOgGoc; 表格创建-> 打开软件,点 ...

  2. poj3061 Subsequence(尺取)

    Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...

  3. Distinct Substrings SPOJ - DISUBSTR(后缀数组水题)

    求不重复的子串个数 用所有的减去height就好了 推出来的... #include <iostream> #include <cstdio> #include <sst ...

  4. RRDtool绘制lvs连接数图形

    需求:用RRDtool绘制lvs的连接数图形 RRDtool是一个强大的绘图工具,作者是Tobias Oetiker. RRD全称Round Robin Database,轮转数据库,也是一个时间序列 ...

  5. java多线程 -- volatile 关键字 内存 可见性

    内存可见性(Memory Visibility) 1 内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态,需要确保当一个线程修改了对象状态后,其 ...

  6. 关于idea中新建web项目 webapp文件夹没有小蓝点 ,启动服务,访问不到解决方案

    第一步: 选中项目按F4键,找到你的项目. 第二步: 选中项目下的web,如果没有web点击左上角的加号,找到web最下面,添加进去 第三步: 点开type下的节点,出来弹框, 第四步: 点击弹框的选 ...

  7. mac 安装 pecl

    下载 pear curl -O http://pear.php.net/go-pear.phar sudo php -d detect_unicode= go-pear.phar 配置和安装 pear ...

  8. Linux系统之路Centos7.2——安装QQ 的一些问题(附VMware的安装)

    1.首先安装wine 可以通过源码安装,注意在编译的时候加参数,编译64位(如果你的系统是64位哦!) 但是我建议直接rpm安装. 安装网络源: rpm -ivh epel-release-6-8.n ...

  9. Netflix的zuul使用

    1.zuul出现的原因 2.zuul的介绍 3.zuul如何使用 4.zuul的一些注意事项

  10. 【Asp.net入门04】第一个ASP.NET 应用程序-如何添加Web窗体到网站中

    添加Web窗体 本部分内容: 什么是web form 怎样添加web form 1.添加Web窗体到项目中 Web 窗体是一项 ASP.NET 功能,您可以使用它为 Web 应用程序创建用户界面.We ...