sábado, setembro 08, 2007

Criptografia sem frescura

Hoje precisei criptografar uma string, nada muito sofisticado, apenas não deixar que ela ficasse totalmente exposta na tabela do banco de dados. Dei uma procurada na WEB e encontrei várias soluções, mas a que usei foi uma que encontrei no site Planeta Delphi, enviada pelo colega Roberto Oliveira, que me atraiu pela simplicidade de uso, sem frescura, mas com total funcionalidade. Abraço a todos e segue abaixo a função.

function Criptografar(wStri: String): String;
var Simbolos: array [0..4] of String;
x : Integer;
begin

Simbolos[1]:= 'ABCDEFGHIJLMNOPQRSTUVXZYWK ~!@#$%^&*()\';

Simbolos[2]:= 'ÂÀ©Øû׃çêùÿ5Üø£úñѪº¿®¬¼ëèïÙýÄÅÉæÆôöò»Á';
Simbolos[3]:='abcdefghijlmnopqrstuvxzywk1234567890';
Simbolos[4]:='áâäàåíóÇü龶§÷ÎÏ-+ÌÓ߸°¨·¹³²Õµþîì¡«½';

for x := 1 to Length(Trim(wStri)) do
begin

if pos(Copy(wStri,x,1),Simbolos[1]) > 0 then
Result := Result + Copy(Simbolos[2],Pos(copy(wStri,x,1),Simbolos[1]),1)
else if Pos(Copy(wStri,x,1),Simbolos[2]) > 0 then

Result := Result + Copy(Simbolos[1],Pos(copy(wStri,x,1),Simbolos[2]),1)
else if Pos(Copy(wStri,x,1),Simbolos[3]) > 0 then

Result := Result + Copy(Simbolos[4],Pos(copy(wStri,x,1),Simbolos[3]),1)
else if Pos(Copy(wStri,x,1),Simbolos[4]) > 0 then

Result := Result + Copy(Simbolos[3],Pos(copy(wStri,x,1),Simbolos[4]),1);
end;
end;

Abraços

Nenhum comentário: