쿨한 개.Krc 암호화 가사 해석

7664 단어 암호화
 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는 본문입니다.

좋은 웹페이지 즐겨찾기