某些CTF密码算法的PHP解法

jopen 8年前

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

<code id="code0"><?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;                  }          }                ?></code>

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

01    <?php      02    $a='98554799767';      03    $a=floatval($a);      04      05    for((float)$i=2;$i<(float)$a;$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<$cou-1;$i++){      05            for($j=0;$j<$cou-1;$j++){      06                    for($k=0;$k<$cou-1;$k++){      07                            for($l=0;$l<$cou-1;$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    ?>


来自: https://www.t00ls.net/articles-32280.html