Day34
PHP_encrypt_1(ISCCCTF)
fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=
下載下來.zip文件
本題要點:encrypt 函數,編碼能力
只能照搬大佬的解密代碼了
<?php
function decrypt($str) {
$mkey = "729623334f0aa2784a1599fd374c120d";
$klen = strlen($mkey);
$tmp = $str;
$tmp = base64_decode($tmp); // 對 base64 後的字符串 decode
$md_len = strlen($tmp); //獲取字符串長度
$x = 0;
$char = "";
for($i=0;$i < $md_len;$i++) { // 取二次加密用 key;
if ($x == $klen) // 數據長度是否超過 key 長度檢測
$x = 0;
$char .= $mkey[$x]; // 從 key 中取二次加密用 key
$x+=1;
}
$md_data = array();
for($i=0;$i<$md_len;$i++) { // 取偏移後密文數據
array_push($md_data, ord($tmp[$i]));
}
$md_data_source = array();
$data1 = "";
$data2 = "";
foreach ($md_data as $key => $value) { // 對偏移後的密文數據進行還原
$i = $key;
if($i >= strlen($mkey)) {$i = $i - strlen($mkey);}
$dd = $value;
$od = ord($mkey[$i]);
array_push($md_data_source,$dd);
$data1 .= chr(($dd+128)-$od); // 第一種可能, 餘數+128-key 爲迴歸數
$data2 .= chr($dd-$od); // 第二種可能, 餘數直接-key 爲迴歸數
}
print "data1 => ".$data1."<br>\n";
print "data2 => ".$data2."<br>\n";
}
$str = "fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=";
decrypt($str);
?>
用在線的測試網頁直接測試
嗯,這個flag形式很坑爹:
Flag:{asdqwdfasfdawfefqwdqwdadwqadawd}
ps:仍是要踏踏實實寫代碼啊!!!
完成!