Delphi用的人越来越少 了,可用资源越来越少。有什么好的完整的代码我都尽量拿出来跟大家分享,部分内容也是来自互联网整理
Delphi代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ElAES,math;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TKeyBit = (kb128, kb192, kb256);
TCRLFMode = (rlCRLF, rlLF, rlCR, rlNONE);
var
Form1: TForm1;
implementation
{$R *.dfm}
function ChangCRLFType(Value: string; CRLFMode: TCRLFMode): string;
var
HasCRLF: Boolean;
begin
Result := Value;
HasCRLF := Pos(#10, Result) > 0;
if not HasCRLF then
begin
HasCRLF := Pos(#13, Result) > 0;
end;
if HasCRLF then
begin
Result := StringReplace(Result, #13#10, #10, [rfReplaceAll]);
Result := StringReplace(Result, #10#13, #10, [rfReplaceAll]);
Result := StringReplace(Result, #13, #10, [rfReplaceAll]);
if CRLFMode = rlCRLF then
begin
Result := StringReplace(Result, #10, #13#10, [rfReplaceAll]);
end
else if CRLFMode = rlCR then
begin
Result := StringReplace(Result, #10, #13, [rfReplaceAll]);
end
else if CRLFMode = rlNONE then
begin
Result := StringReplace(Result, #10, '', [rfReplaceAll]);
end;
end;
end;
function BytesOf(const Val: AnsiString): TBytes;
var
Len: Integer;
begin
Len := Length(Val);
SetLength(Result, Len);
Move(Val[1], Result[0], Len);
end;
function StringOf(const buf:TBytes): AnsiString;
begin
SetLength(Result, Length(buf));
CopyMemory(PAnsiChar(result), @buf[0], Length(buf));
end;
{ -- 流加密函数 默认按照 128 位密匙解密 -- }
function EncryptStream(Stream: TStream; OutStrm:TStream;Key: string;
KeyBit: TKeyBit = kb128; KeepKeyCRLF: Boolean = False;
KeyCRLFMode: TCRLFMode = rlCRLF
): TStream;
var
Count: Int64;
AESKey128: TAESKey128;
AESKey192: TAESKey192;