Funktion zur MD5-Verschlüsselung aus DLL aufrufen


In diesen Tipp zeige ich, wie man eine DLL erstellt mit der man Strings mit MD5 verschlüsseln kann.
Dieser Tipp baut auf dem Tipp „MD5-Verschlüsselung mit Delphi realisieren“ auf. Wir werden also die in dem Tipp erstellte Unit md5 in eine DLL packen die wir in jedem beliebigen Projekt schnell und einfach benutzen können.

Im ersten Teil erstellen wir eine DLL in die wir die Unit md5 aus dem oben genannten Tipp einbinden. Anschließend zeige ich in Teil 2, wie man die DLL aus seinem Programm aufrufen und einen String per md5 verschlüsseln kann.

Erstellen einer DLL-Datei
Klicken Sie im Hauptmenü auf Datei->Neu->Weitere und wählen Sie anschließend DLL-Experte.
Es wird eine neue Library erstellt in der sich bereits einiges an Quelltext befindet.
Diesen können wir direkt durch den unten angegebenen Quelltext ersetzen.
Speichern Sie das Projekt als dbtest.dll und kompilieren Sie dieses anschließend indem Sie im Hauptmenü auf Projekt->dbtest compilieren klicken oder indem Sie die Tastenkombination Strg+F9 drücken. Die Datei md5.pas, die im Beitrag MD5-Verschlüsselung mit Delphi realisieren erstellt wurde, sollte sich im selben Verzeichnis befinden in dem Sie das Projekt speichern damit diese gefunden und ins Projekt einkompiliert werden kann. Nachdem Sie das Projekt kompiliert haben, sollte sich im angegebenen Verzeichnis die Datei dbtest.dll befinden.

 

DLL-Datei dbtest.dll

library dbtest;

uses
  md5 in 'md5.pas';

{$R *.res}

function MD5String(str: WideString): WideString; stdcall;
begin
  Result := MD5.MD5Print(MD5.MD5String(str));
end;

exports
  MD5String;

begin

end.

 

Erstellen eines neuen Projektes
Wir erstellen ein neues Projekt das wir am besten in einem neuen Verzeichnis abspeichern. In dieses Verzeichnis kopieren wir die zuvor erstellte dll-Datei.
Für das Beispiel verwenden wir eine Label, eine Edit und eine Button-Komponente.
Diese Komponenten richten wir nun nach Belieben aus. Ich habe den Button  rechts neben das Edit gesetzt und das Label über dem Edit ausgerichtet.
Nun erstellen wir eine globale Variable PATH des Types String. Dieser Variable weisen wir im onCreate der Form den Pfad zu, in dem sich unser Programm befindet.
Klicken Sie anschließend doppelt auf den Button. Es wird die procedure Button1Click erzeugt. In diese procedure übernehmen wir jetzt einfach den unten angegebenen Quelltext aus der gleichnamigen procedure.

var
  Form1: TForm1;
  PATH: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  PATH := ExtractFilePath(ParamStr(0));
end;

procedure TForm1.Button1Click(Sender: TObject);
type
  TPluginName = function (str: WideString): WideString; stdcall;
var
  hDLL : tHandle;
  FPName: TPluginName;
begin
  hDLL := LoadLibrary(pChar(PATH+'dbtest.dll'));
  if hDLL = 0 then
  begin
    showmessage('Die Datei dbtest.dll wurde nicht gefunden');
    Exit;
  end;
  try
    FPName := GetProcAddress(hDLL, 'MD5String');
    if Assigned(FPName) then Label1.Caption := FPName(Edit1.Text);
  except
    ShowMessage('Funktion "MD5String" der DLL konnte nicht ausgeführt werden.');
  end;
end;

Sie können das Projekt nun ausführen indem Sie die F9 Taste drücken.
Wenn das Projekt gestartet wurde, geben Sie in das Eingabefeld ein beliebiges Wort ein und klicken Sie auf den Button. Wenn alles geklappt hat, also die DLL Datei zuvor richtig erstellt wurde und diese auch im angegebenen Verzeichnis gefunden wurde, müsste nun über dem Eingabefeld der md5-hash des eingegebenen Wortes erscheinen.

Klasse: Sie haben nun die Möglichkeit aus jedem Ihrer Projekte einfach Strings per md5 zu verschlüsseln. Sie müssen lediglich die DLL Datei verfügbar machen.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.