某些CTF密碼算法的PHP解法
最近出現了一個奇葩觀點,說性別都不一樣,怎么能談戀愛?為了證明這個觀點錯誤,請大家證明異性是相吸的。(答案為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 ?>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!