Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.



Deel:
Meldingen
Alles wissen

[Opgelost] Lazarus - Hoe kun je eenvoudig encryptie en decryptie gebruiken met BlowFish

1 Berichten
1 Gebruikers
0 Reactions
1,981 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2869
Topic starter  

Soms moet je gevoelige informatie opslaan en die wil je natuurlijk het liefste versleutelen (encryptie) zodat anderen deze info niet zo mara kunnen leen. Denk daarbij aan het opslaan van een wachtwoord in een config bestand, ini bestand of de Windows registry.

Gelukkig komt een handig hulpmiddel, "BlowFish" mee met Lazarus die dat allemaal snel en eenvoudig voor je kan doen.

In onderstaande voorbeelden heb ik twee eenvoudige functies gemaakt voor het versleutelen (encryptie) en ontsleutelen/ontcijferen.

Als eerste moet je BlowFish aan de Uses clausule toevoegen.

Uses BlowFish;

Met de volgende (voorbeeld) functies kun je dan eenvoudig strings versleutelen of ontcijferen, daarbij moet natuurlijk wel dezelfde key gebruikt worden voor beiden anders werkt het niet.

Je kunt ze eenvoudig aanroepen:

myencryptedstring:=EncryptString('Hallo');      // levert onleesbare tekst
mydecryptedstring:=Decrypt(myencryptedstring); // levert 'Hallo' function TForm1.EncryptString(aString:string):string;
var Key:string;
    EncrytpStream:TBlowFishEncryptStream;
    StringStream:TStringStream;
    EncryptedString:string;
begin
  Key := 'mijn_geheime_encryptie_sleutel';
  StringStream := TStringStream.Create('');
  EncrytpStream := TBlowFishEncryptStream.Create(Key,StringStream);
  EncrytpStream.WriteAnsiString(aString);
  EncrytpStream.Free;
  EncryptedString := StringStream.DataString;
  StringStream.Free;
  EncryptString := EncryptedString;
end;
...
function TForm1.DecryptString(aString:string):string;
var Key:string;
    DecrytpStream:TBlowFishDeCryptStream;
    StringStream:TStringStream;
    DecryptedString:string;
begin
  Key := 'mijn_geheime_encryptie_sleutel';
  StringStream := TStringStream.Create(aString);
  DecrytpStream := TBlowFishDeCryptStream.Create(Key,StringStream);
  DecryptedString := DecrytpStream.ReadAnsiString;
  DecrytpStream.Free;
  StringStream.Free;
  DecryptString := DecryptedString;
end;                                

   
BeantwoordenCiteren
Deel: