quarta-feira, 17 de junho de 2009

Encriptando/desencriptando arquivos

{Este procedimento permite encriptar e desencriptar arquivos de qualquer tipo. O código de encriptação é bastante simples, por isso pode ser melhorado, sendo este apenas um exemplo de como fazê-lo em Delphi. }
procedure EnDecryptFile(INFName, OutFName : String; Chave : Word);
var
InMS, OutMS : TMemoryStream;
I : Integer;
C : byte;
begin
InMS := TMemoryStream.Create;
OutMS := TMemoryStream.Create;
try
InMS.LoadFromFile(INFName);
InMS.Position := 0;
for I := 0 to InMS.Size - 1 do
begin
InMS.Read(C, 1);
C := (C xor not(ord(chave shr I)));
OutMS.Write(C,1);
end;
OutMS.SaveToFile(OutFName);
finally
InMS.Free;
OutMS.Free;
end;
end; Exemplo de utilização:

{Iniciar um novo projecto, copiar o procedimento EnDecryptFile para uma unit, colocar dois TButton (Button1 e Button2) na form.

No evento OnClick do Button1 deve chamar o procedimento, em que os parâmetros são o a path do arquivo a encriptar, a path para onde o arquivo deve ser encriptado e uma chave de encriptação.}


procedure TForm1.Button1Click(Sender: TObject);
begin
EnDecryptFile('c:arquivo.txt', 'c:arquivo1.txt', 12);
end; {No evento OnClick do Button2 deve chamar o procedimento, em que os parâmetros são o a path e o nome do arquivo encriptado, a path e o nome para onde o arquivo deve ser desencriptado e a chave de encriptação usada para encriptar o arquivo original.}


procedure TForm1.Button2Click(Sender: TObject);
begin
EnDecryptFile('c:ficheiro1.txt', 'c:ficheiro2.txt', 12);
end; {Agora verifique se o arquivo c:arquivo.txt é igual ao arquivo c:arquivo2.txt, se é então correu tudo bem! }

Nenhum comentário:

Postar um comentário