Criando um Componente para Criptografia de Dados
Neste artigo vamos aprender à criarmos nosso próprio componente para criptografia de dados. Que serve apenas para Criptografar e Desciptograsfar seqüências de caracteres.
No menu Component do Delphi, escolha o item New Component. Na janela New Component, altere o campo Ancestor Type para “Tcomponent”, e o campo Class Name para “Tcriptografia”. Clique no botão install e, nas próximas janelas, confirme a montagem e complicação da package , clicando nos botões Yes e Ok.
Agora o Delphi criou uma Unit chamada de Criptografia, que conterá o código fonte do nosso novo componte.
À interface da Unit, logo antes da declaração da procedure Register, adicione as seguintes linhas.
Const
C1= 33598;
C2=24219;
Estas constantes são utilizadas nos cálculos das rotinas de criptografia e podem ser alteradas conforme o gosto do leitor.
Criaremos apenas uma propriedade para o nosso componente, que servirá para armazenar a chave utilizada na criptografia dos dados.
À Seção Private da interface da Unit Criptografia acrescente a linha:
VChave: Word;
À Seção Published acrescente a linha:
Property Chave:Word read vChave write vChave;
Á seção public da interface da Unit Criptografia, acrescente a declaração do construtor do componente:
Constructor Create(AOWner:Tcomponent);override;
Á parte implementation acrescente a implementação do construtor:
Construtor Tcriptografia.Create(AOWner: TComponent);
Begin
Inherited Create(AOWner); //Chama o construtor priginal
Chave:=16854;
End;
Á seção Public acrescente as declarações dos métodos de criptografia:
Function Criptografar(pTexto:String):String;
Function Descriptografar(pTexto:String):String;
Á parte implementation acrescente a implementação dos métodos de criptografia:
Function Tcriptografia.Criptografar(pTexto:String):String;
Var
I:Byte;
VChave:Word;
Texto:String;
Begin
VChave:=Chave;
For I:=1 to to Length(pTexto) do
Begin
Texto:=Texto+char(Byte(pTexto[I]) xor (vChave shr 8));
VChave:=(Byte(Texto[I]) + vChave) * C1 + C2;
End;
Result:=Texto;
End;
//Cria comandos pra Descriptografar os caracteres
Function Tcriptografia.Descriptografar(pTexto:String):String;
Var
I:Byte;
VChave:Word;
Texto:String;
Begin
VChave:=Chave;
For I:=1 to to Length(pTexto) do
Begin
Texto:=Texto+char(Byte(pTexto[I]) xor (vChave shr 8));
VChave:=(Byte(Texto[I]) + vChave) * C1 + C2;
End;
Result:=Texto;
End;