我正在尝试打开一个将存储信息列表的加密文件,然后添加一个带有信息的新 ID,然后将文件保存回原来的加密状态。我有正在工作的 xor/base64 函数,但我无法让文件保留旧信息。
这是我目前使用的:
$key = 'some key here';
$id = $_GET['id'];
$group = $_GET['group'];
$file = "groups.log";
$fp = fopen($file, "w+");
$fs = file_get_contents($file);
$filedec = xorstr(base64_decode($fs),$key);
$info = "$id: $group";
$filedec = $filedec . "$info\n";
$reencode = base64_encode(xorstr($filedec,$key));
fwrite($fp, $reencode);
fclose($fp);
function xorstr($str, $key) {
$outText = '';
for($i=0;$i<strlen($str);)
{
for($j=0;$j<strlen($key);$j++,$i++)
{
$outText .= $str[$i] ^ $key[$j];
}
}
return $outText;
}
?>
它应该保存 ID 及其相应组的完整列表,但由于某种原因,它只显示最后一个输入:(