<?php
function encrypt($data,$key)
{
$key = md5('ISCC'); #729623334f0aa2784a1599fd374c120d
$x = 0;
$len = strlen($data);
$klen = strlen($key);
for ($i=0; $i < $len; $i++) {
if ($x == $klen)
{
$x = 0;
}
$char .= $key[$x];
$x+=1;
}
for ($i=0; $i < $len; $i++) {
$str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
}
return base64_encode($str);
}
?>
下载文件后打开index.php,内容如上
根据描述
根据所给加密字符串还原出原始数据
编写解密代码
<?php
$str = "fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=";
$data = base64_decode($str);
for ($i=0; $i < strlen($data); $i++) {
echo ord($data[$i]).' ';
}
$key = md5('ISCC');
$x = 0;
$len = strlen($data);
$klen = strlen($key);
for ($i=0; $i < $len; $i++) {
if ($x == $klen)
{
$x = 0;
}
$char .= $key[$x];
$x+=1;
}
echo $char.' ';
for ($i=0; $i < $len; $i++) {
$num = (ord($data[$i]) - ord($char[$i])) % 128;
if($num < 0){
$flag .= chr($num+128);
}else{
$flag .= chr($num);
}
}
echo $flag
?>
大部分代码都与加密代码类似,在最后一步,需要考虑ascii码相减后为负数的情况。
在线运行代码https://c.runoob.com/compile/1