[fpc-pascal] Re: encryption and decryption
silvioprog
silvioprog at gmail.com
Sat Jun 23 18:50:54 CEST 2012
2012/6/23 silvioprog <silvioprog at gmail.com>:
> 2012/6/23 leledumbo <leledumbo_cool at yahoo.co.id>:
>>> How to use TBlowFishEnCryptStream? Is there any example for mortals?
>>
>> No but I guess the doc is clear enough.
>>
>> To encrypt:
>> 1. Create TBlowFishEnCryptStream instance supplying a key and the stream to
>> write encrypted data to
>> 2. Write the data using its Write method
>> 3. Flush or Free (Free implies Flush) to ensure all data are written
>>
>> To decrypt:
>> 1. Create TBlowFishDeCryptStream instance supplying a key and the stream
>> containing previously encrypted data. If you want to use directly previous
>> stream, ensure to Seek it to the first data. To be safe, create a new stream
>> instead and put the data from previous stream.
>> 2. Read the data using its Read method (you should now the data length, for
>> some stream Size property can be used)
>>
>> An example:
>>
>> {$mode objfpc}{$H+}
>>
>> uses classes,blowfish;
>>
>> var
>> en: TBlowFishEncryptStream;
>> de: TBlowFishDeCryptStream;
>> s1,s2: TStringStream;
>> key,value,temp: String;
>> begin
>> key := 'testkey';
>> value := 'this is a string';
>>
>> s1 := TStringStream.Create('');
>> en := TBlowFishEncryptStream.Create(key,s1);
>> en.Write(value[1],Length(value));
>> en.Free;
>>
>> WriteLn('encrypted: ' + s1.DataString);
>>
>> s2 := TStringStream.Create(s1.DataString);
>> s1.Free;
>>
>> de := TBlowFishDeCryptStream.Create(key,s2);
>>
>> SetLength(temp,s2.Size);
>> de.Read(temp[1],s2.Size);
>> WriteLn('decrypted: ' + temp);
>> de.Free;
>>
>> s2.Free;
>> end.
>>
>> --
>> View this message in context: http://free-pascal-general.1045716.n5.nabble.com/encryption-and-decryption-tp5710131p5710137.html
>> Sent from the Free Pascal - General mailing list archive at Nabble.com.
>
> I'll test this sample now ... :)
It worked perfectly well, and is a great example, it explains in
detail how to use the blowfish unit. :)
It would be interesting to distribute this example with the Free Pascal.
--
Silvio Clécio
My public projects - github.com/silvioprog
More information about the fpc-pascal
mailing list