當前位置:編程學習大全網 - 源碼下載 - 高分求解delphi傳輸文件時加密

高分求解delphi傳輸文件時加密

文件加密解密 函數

{ -- 文件加密函數 默認按照 128 位密匙解密 -- }

procedure EncryptFile(SourceFile, DestFile: string;

Key: string; KeyBit: TKeyBit = kb128);

var

SFS, DFS: TFileStream;

Size: Int64;

AESKey128: TAESKey128;

AESKey192: TAESKey192;

AESKey256: TAESKey256;

begin

SFS := TFileStream.Create(SourceFile, fmOpenRead);

try

DFS := TFileStream.Create(DestFile, fmCreate);

try

Size := SFS.Size;

DFS.WriteBuffer(Size, SizeOf(Size));

{ -- 128 位密匙最大長度為 16 個字符 -- }

if KeyBit = kb128 then

begin

FillChar(AESKey128, SizeOf(AESKey128), 0 );

Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key)));

EncryptAESStreamECB(SFS, 0, AESKey128, DFS);

end;

{ -- 192 位密匙最大長度為 24 個字符 -- }

if KeyBit = kb192 then

begin

FillChar(AESKey192, SizeOf(AESKey192), 0 );

Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key)));

EncryptAESStreamECB(SFS, 0, AESKey192, DFS);

end;

{ -- 256 位密匙最大長度為 32 個字符 -- }

if KeyBit = kb256 then

begin

FillChar(AESKey256, SizeOf(AESKey256), 0 );

Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key)));

EncryptAESStreamECB(SFS, 0, AESKey256, DFS);

end;

finally

DFS.Free;

end;

finally

SFS.Free;

end;

end;

-----------------------

給分後放出解密函數

  • 上一篇:交易線指數公式源代碼
  • 下一篇:在拿破侖時代陸軍主要戰法有哪些
  • copyright 2024編程學習大全網