某些CTF密码算法的PHP解法
一、异性相吸:
最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的。(答案为flag{}形式,提交{}内内容即可)
解法:二、Alice与Bob :
密码学历史中,有两位知名的杰出人物,Alice和Bob。他们的爱情经过置换和轮加密也难以混淆,即使是没有身份认证也可以知根知底。就像在数学王国中的素数一样,孤傲又热情。下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。
解法:三、残缺的哈希值:
小明一直将电脑密码的哈希值写在纸上,结果一不小心将墨水撒在了上面,只看得到前10位是c2979c7124,小明只记得密码是4位的数字加字母,你能帮小明恢复密码的哈希值吗?(提示:flag为密码的哈希值)
最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的。(答案为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位小写哈希,提交答案。
解法:
<?php
$a='98554799767';
$a=floatval($a);
for((float)$i=2;$i<(float)$a;$i++){
$num=fmod($a,$i);
if($num==0){
echo $i."\n";
break;
}
}
$j=$a/$i;
echo $j."\n";
echo md5($i.$j);
?>
小明一直将电脑密码的哈希值写在纸上,结果一不小心将墨水撒在了上面,只看得到前10位是c2979c7124,小明只记得密码是4位的数字加字母,你能帮小明恢复密码的哈希值吗?(提示:flag为密码的哈希值)
<?php
$str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$cou=strlen($str);
for($i=0;$i<$cou-1;$i++){
for($j=0;$j<$cou-1;$j++){
for($k=0;$k<$cou-1;$k++){
for($l=0;$l<$cou-1;$l++){
$ret=md5($str[$i].$str[$j].$str[$k].$str[$l]);
if(substr($ret,0,10)=='c2979c7124'){
echo $ret;die();
}
}
}
}
}
?>
评论2次
请问下这道题是什么意思呢,没看懂。
c2979c71244dec2befc6e369941c6546