php密码算法,某些CTF密码算法的PHP解法

最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的。(答案为flag{}形式,提交{}内内容即可)

<?php

echo encrypt('mi.txt', 'asadsasdasdasdasdasdasdasdasdasdqwesqf');

function encrypt($source, $key){

if(file_exists($source)){

$content = '';

$keylen = strlen($key);

$index = 0;

$fp = fopen($source, 'rb');

while(!feof($fp)){

$tmp = fread($fp, 1);

$content .= $tmp ^ substr($key,$index%$keylen,1);

$index++;

}

fclose($fp);

return $content;

}else{

return false;

}

}

?>

密码学历史中,有两位知名的杰出人物,Alice和Bob。他们的爱情经过置换和轮加密也难以混淆,即使是没有身份认证也可以知根知底。就像在数学王国中 的素数一样,孤傲又热情。下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5 的32位小写哈希,提交答案。

01    <?php

02    $a='98554799767';

03    $a=floatval($a);

04

05    for((float)$i=2;$i

06            $num=fmod($a,$i);

07            if($num==0){

08                    echo $i."\n";

09                    break;

10            }

11    }

12    $j=$a/$i;

13    echo $j."\n";

14    echo md5($i.$j);

15    ?>

小明一直将电脑密码的哈希值写在纸上,结果一不小心将墨水撒在了上面,只看得到前10位是c2979c7124,小明只记得密码是4位的数字加字母,你能帮小明恢复密码的哈希值吗?(提示:flag为密码的哈希值)

01    <?php

02    $str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

03    $cou=strlen($str);

04    for($i=0;$i

05            for($j=0;$j

06                    for($k=0;$k

07                            for($l=0;$l

08                                    $ret=md5($str[$i].$str[$j].$str[$k].$str[$l]);

09                                    if(substr($ret,0,10)=='c2979c7124'){

10                                            echo $ret;die();

11                                    }

12                            }

13                    }

14            }

15    }

16    ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值