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

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

简单的MD5密码碰撞,通过对比密文e9032 与加密后的数据 定位相关信息

解题代码如下

GO语言版

package main

import (

"crypto/md5"

"io"

"encoding/hex"

"strings"

"fmt"

)

var Enable = []rune{'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','1','2','3','4','5','6','7','8','9',' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '', '?', '@','[', '\\', ']', '^', '_', '`', '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', '{', '|', '}', '~'}

func main() {

var(

rune1 rune

rune2 rune

rune3 rune

)

for i:=0; i< len(Enable);i++ {

rune1 = Enable[i]

for j:=0; j< len(Enable);j++ {

rune2 = Enable[j]

for k:=0; k< len(Enable);k++ {

rune3 = Enable[k]

strToDecode := "TASC"+string(rune1)+"O3RJMV"+string(rune2)+"WDJKX"+string(rune3)+"ZM"

str := md5.New()

io.WriteString(str, strToDecode)

hexStr := str.Sum(nil)

code := hex.EncodeToString(hexStr)

result := "e9032"

com01 := strings.Contains(code,result)

if com01 == true {

fmt.Println(strToDecode,code)

}

}

}

}

}

PHP版

$list = array(

'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','1','2','3','4','5','6','7','8','9',' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '', '?', '@','[', '\\', ']', '^', '_', '`', '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=0;$i

$str1 = $list[$i];

for ($j=0;$j

$str2 = $list[$j];

for ($k=0;$k

$str3 = $list[$k];

$str = "TASC".$str1."O3RJMV".$str2."WDJKX".$str3."ZM";

$md5 = md5($str);

if(strstr($md5,"e9032")){

echo $str."---".$md5."\n";

}

}

}

}

有疑问加站长微信联系(非本文作者)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值