这是昨天WHUCTF比赛的一道题目,本属于crypto,其实和crypto没多大关系,

比赛时其实差不多有这种思路了,但不相信自己,就没这样做下去,回来之后,照做了,果然是这样

链接:http://pan.baidu.com/s/1bpBn4Qz 密码:w4os

程序主体思路

flag400.txt是自己的文件 里面就是要输的flag flag长度为32 操作是每次把 enjoy WHU_CTF2016!的一个字符和flag链接 算他们的md5值 再将md5和flag按位异或得到长度为32的output  再算base64即为enc400.txt里面的文本

 
这里涉及到md5加salt的这样一种加密方式,有兴趣的可以了解一下
 
md5加salt的强度肯定是爆破不了的,只能在后面的按位异或找思路
思路:

flag范围是ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}_

md5是abcdefghijklmnopqrstuvwxyz0123456789
可以对这里进行爆破
自己写的python脚本:
import base64
base=open('enc400.txt','r').read().split() for i in range(len(base)):
base[i]=base64.b64decode(base[i]) a=[[0 for i in range(len(base))]for j in range(32)] for i in range(32):
for m,n in enumerate(base):
a[i][m]=hex(ord(n[i])) print a b='abcdefghijklmnopqrstuvwxyz0123456789'
c='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}_' for k in range(32):
for i in c:
for m,n in enumerate(a[k]):
d=chr(int(n,16)^ord(i))
if d not in b:
break
if m==17:
print k,i

最后的flag是:yo_you_are_angry_i_am_excited_yo

CRYPTO-MD5的更多相关文章

  1. go标准库的学习-crypto/md5

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/md5" md5包实现了MD5哈希算法,参见RFC 1321. Con ...

  2. node crypto md5加密,并解决中文不相同的问题

    在用crypto模块时碰到了加密中文不相同的问题,多谢群里面@蚂蚁指定 1:解决中文不同的问题 function md5Pay(str) { str = (new Buffer(str)).toStr ...

  3. nodejs -- crypto MD5签名

    MD5使用方法: const crypto = require('crypto'); var obj = crypto.createHash('md5'); // 可多次调用 update obj.u ...

  4. 计算文件的MD5值(Java & Rust)

    Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1&qu ...

  5. 文件MD5

    package mainimport (    "crypto/md5"    "fmt"    // "github.com/astaxie/bee ...

  6. Golang--计算文件的MD5值

    参考: http://blog.csdn.net/u014029783/article/details/53762363 用法: $ go run 01.go -f 1.txt b9d228f114d ...

  7. Golang两种方法实现MD5加密

    package main import ( "crypto/md5" "fmt" "io" ) func main() { str := & ...

  8. go语言练习:go实现md5

    package main import ( "crypto/md5" "fmt" ) func main() { md5_ob := md5.New() md5 ...

  9. [Go] md5 加密 示例

    package main import ( "crypto/md5" "encoding/hex" "fmt" "io" ...

  10. Golang 获取MD5的方法

    import ( "crypto/md5" "encoding/hex" ) //生成32位md5字串 func Md5(s string) string { ...

随机推荐

  1. 从下往上看--新皮层资料的读后感 第四部分 来自神经元的设计-perceptron 感知机

    搬地方了,其他的部分看知乎:https://zhuanlan.zhihu.com/p/22114481 直到50年代,perceptron被Frank Rosenblatt搞了出来.perceptro ...

  2. vba单元格背景色

    cells(i,j).interior.color=5287936  green =255 red

  3. ubuntu - 中文

    首先要从Ubuntu语言设置那里,把中文语言包安装上 打开/etc/environment 在下面添加如下两行 LANG="zh_CN.UTF-8″ LANGUAGE="zh_CN ...

  4. 基础篇-初步认识PE格式

    1 PE(Portable Executable)格式,是Win32环境可移植可执行文件(如exe.dll.vxd.sys和vdm等)的标准文件格式.PE格式衍生于早期建立在VAX(R)VMS(R)上 ...

  5. Cogs 14. [网络流24题] 搭配飞行员

    这道题其实蛮好想的,因为分为正,副飞行员.所以就把正飞行员当作Boy,副飞行员当作Girl.然后做Hungry即可. #include<bits/stdc++.h> using names ...

  6. 开启Win7系统管理员Administrator账户

    Win7系统凭借酷炫的界面以及简单.易用.快速.安全等特点,迅速成为全球最受用户喜爱的操作系统,如今Win7已经成为身边很多朋友生活学习工作的好伙伴.在我们使用Win7的时候,有一些软件的正常运行需要 ...

  7. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】

    原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...

  8. Android中Activity的启动模式

    简介 Android中的活动启动方式分为4种:standard, singleTop, singleTask, singleInstance.可以在AndroidManifest.xml中通过给< ...

  9. uboot mmc烧写命令

    mmc write addr blk# cnt 这个命令的作用是将内存上的数据写入mmc中 参数: addr: 从内存读取的位置 blk: 写入到mmc中block位置,这个位置是mmc的0地址的偏移 ...

  10. linux下如何使用sftp命令

    sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性.下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作. 举例,如远程主机的 IP ...