标签:style blog io color ar 使用 java sp for
1 function KrcToLrc(filename: string): string; 2 function ZDecompressStr2(const S: TBytes): UTF8String; 3 var 4 BIn, BOut: TBytes; 5 begin 6 BIn := S; 7 ZDecompress(BIn, BOut); 8 Result := TEncoding.UTF8.GetString(BOut); 9 end; 10 11 const 12 miarry: array [0 .. 15] of Char = (‘@‘, ‘G‘, ‘a‘, ‘w‘, ‘^‘, ‘2‘, ‘t‘, ‘G‘, 13 ‘Q‘, ‘6‘, ‘1‘, ‘-‘, ‘Α, ‘Ò‘, ‘n‘, ‘i‘); 14 var 15 Stream: TFileStream; 16 Top: array [0 .. 3] of byte; 17 k, j, l: Integer; 18 zip_byte: TBytes; 19 FileNameBuff: string; 20 begin 21 FileNameBuff := ExtractFileExt(LowerCase(filename)); 22 if FileNameBuff <> ‘.krc‘ then begin 23 result:=‘‘; 24 Exit; 25 end; 26 27 Stream := TFileStream.Create(filename, fmOpenReadWrite); 28 try 29 j := Stream.SIZE; 30 SetLength(zip_byte, j - 4); 31 Stream.read(Top, 4); 32 Stream.read(zip_byte, j - 4); 33 finally 34 Stream.Free; 35 end; 36 37 for k := Low(zip_byte) to High(zip_byte) do begin 38 l := k mod 16; 39 zip_byte[k] := zip_byte[k] xor byte(miarry[l]); 40 end; 41 42 result:= ZDecompressStr2(zip_byte); 43 44 end;
对应的Delphi版本为Unicode版本 D7的Ansi版本不使用,添加System.Zlib即可使用
酷狗的异或加密串是从一位JAVA那边得到的
Top4字符是加密文件头,用于校验
Zip_byte是正文
标签:style blog io color ar 使用 java sp for
原文地址:http://www.cnblogs.com/ab0416/p/4087572.html