我有一个我的世界服务器,需要备份所有项目的人有,我希望通过编辑的.dat文件在世界/播放器。在这个文件中,有.dat文件,它们的名称是每个玩家的用户名。当我用Notepad++打开它时,它显示了这样的胡言乱语:

普通的记事本会给我这样的提示:
‹ ãb``bà
ÎIM-ÉÌM-b`àd`óÍ/ÉÌÏcc```¶ÛqæÀÉEÚ“öob=Ô£i×ý‰Ù5S #‡ž{Q~i^
#‡GiQ H?È46ÔÄœ’Œÿÿ™8]€byÅ@Àf¥˜3‹u88=óÊRóJò‹*AœÌùÅ`û˜Û„¥<^$çà ’apˆßñM&ðБŽ%% ‰ÉÙ[€ÖƒÝœ™—4–Å-³(õÿV·Äœ—Ìâ’ļäTˆÉAù%‰ ï°‚\pð²±’ïÌ9L@§¥&–d€M“d íl+ 我听说这个文件是用Gzipped压缩的。这就是为什么它是这样的吗?我怎么才能解码它,这样我才能真正地读懂它。我需要从PHP脚本中解密它。
发布于 2011-08-24 07:55:43
你需要找出它真正的压缩是什么,但是尝试用这个(Gzip)打开文件:
<?php
$fp = fopen('compress.zlib://yourfile.dat', 'r');
if( $fp ){
while(!feof($fp) ){
echo fread($fp, 2048);
}
fclose($fp);
}
?> 有关更多信息,请查看http://www.php.net/manual/en/wrappers.compression.php。
编辑:你可能想试试这个:
<?php
$dat = file_get_contents('yourfile.dat');
echo gzdecoder($dat);
function gzdecoder($d){
$f=ord(substr($d,3,1));
$h=10;$e=0;
if($f&4){
$e=unpack('v',substr($d,10,2));
$e=$e[1];$h+=2+$e;
}
if($f&8){
$h=strpos($d,chr(0),$h)+1;
}
if($f&16){
$h=strpos($d,chr(0),$h)+1;
}
if($f&2){
$h+=2;
}
$u = gzinflate(substr($d,$h));
if($u===FALSE){
$u=$d;
}
return $u;
}
?>它也不是encrypted,而是compressed。;-)
https://stackoverflow.com/questions/7168673
复制相似问题