criptografia de dados no delphi

Delphi

18/09/2007

Olá Pessoal!
Bom tô querendo saber como usar criptografia em minha aplicação delphi devido a parte de segurança.
então gostaria de saber se alguem utiliza algum tipo de criptografia em suas aplicações, e qual seria o tipo e se possivel algum exemplo de como utilizar em aplicações delphi, ou algum site onde tenha algo que eu possa ler.
Bom pessoal era isso, espero algumas respostas, pois sou um pouco novo nessa parte de criptografia de dados e estou querendo começar a desenvolver aplicações em camadas e para isso seria bom mandar os dados pela net criptografados. pelo acho que sim o que vcs acham?

Agradeço desde já :wink:


Alecsandro Moura

Alecsandro Moura

Curtidas 0

Respostas

Maikel

Maikel

18/09/2007

opa...

Segurança em sistemas é fundamental, posso te dar algumas dicas em relação, mas depende de qual é sua idéia e de como pretende usá-la. Se quiser controlar os usuários e a permissões de cada um deles no sistema, sugiro que de uma olhada no componente UserControl.
http://www.usercontrol.net
Também escrevi um artigo na edição 87 da clube delphi, onde mostro desde a instalação até o controle dos usuários.

Mas se você quiser encriptar textos e valores para passar por rede, pode utilizar outras funções de criptografia. Se procurar na internet, haverá varias opções, abaixo um exemplo:
function TForm1.Cripto(Action, Src, Key: WideString): WideString;
var
   KeyLen    : Integer;
   KeyPos    : Integer;
   offset    : Integer;
   dest      : string;
   SrcPos    : Integer;
   SrcAsc    : Integer;
   TmpSrcAsc : Integer;
   Range     : Integer;
    s : string[255];
    c : array[0..255] of Byte absolute s;
    i: Integer;
begin
     dest:=´´;
     KeyLen:=Length(Key);
     KeyPos:=0;
     SrcPos:=0;
     SrcAsc:=0;
     Range:=256;
     if Action = UpperCase(´E´) then
     begin
          Randomize;
          offset:=Random(Range);
          dest:=format(´¬1.2x´,[offset]);
          for SrcPos := 1 to Length(Src) do
          begin
               SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255;
               if KeyPos < KeyLen then KeyPos:= KeyPos + 1 else KeyPos:=1;
               SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
               dest:=dest + format(´¬1.2x´,[SrcAsc]);
               offset:=SrcAsc;
          end;
     end;
     if Action = UpperCase(´D´) then
     begin
          offset:=StrToInt(´$´+ copy(src,1,2));
          SrcPos:=3;
          repeat
                SrcAsc:=StrToInt(´$´+ copy(src,SrcPos,2));
                if KeyPos < KeyLen Then KeyPos := KeyPos + 1 else KeyPos := 1;
                TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
                if TmpSrcAsc <= offset then
                     TmpSrcAsc := 255 + TmpSrcAsc - offset
                else
                     TmpSrcAsc := TmpSrcAsc - offset;
                dest := dest + chr(TmpSrcAsc);
                offset:=srcAsc;
                SrcPos:=SrcPos + 2;
          until SrcPos >= Length(Src);
     end;
     Cripto:=dest;
end;


Nessa função, você irá passar a ação (E=Encriptar ou D=Descriptografar), o valor e a chave de criptografia que vc quer usar, essa chave pode ser qualquer texto, e a função retorna o valor.

Espero q te ajude, qualquer coisa,post ai.

Att


GOSTEI 0
Rjun

Rjun

18/09/2007

Você pode utilizar os componentes LockBox da TurboPower. Eles fornecem várias formas de criptografia.


GOSTEI 0
Romulocpd

Romulocpd

18/09/2007

Os componentes JEDI também tem vários.


GOSTEI 0
Alecsandro Moura

Alecsandro Moura

18/09/2007

maikel Vlw Pela tua resposta! e as outras respostas da galera tambem! mas eu estou querendo ter trabalho para fazer isso pois não sou muito de usar componentes de terceiros em minhas aplicações pois eu quero aprender e saber como é que funciona o negocio.
Sera que tu pode me dar um exemplo de como fazer a encriptação e a descriptografia dos dados com essa função Crypto pois o tipo de criptografia que eu quero utilizar é quando os dados são enviados ao banco, já envialos criptografados e na busca descriptografar eles e se tiver algum link com o assunto para me passar agradeço!


GOSTEI 0
Maikel

Maikel

18/09/2007

cara.... peguei essa função da net, não me lembro do link, mas se você procurar em alguma ferramenta de busca por ´criptografia + delphi´ vai achar várias outras funções e conceitos.
Essa função crypto é bem simples de usar, para encriptar algum valor, use da seguinte maneira:
ShowMessage(Cripto(´E´,´VALOR PARA CRIPTOGRAFIA´,´CHAVE´))


Para descriptografar, troque o Action E por D, assim:
ShowMessage(Cripto(´D´,´VALOR PARA DESCRIPTOGRAFIA´,´CHAVE´))


Lembrando que nesses dois casos a chave utilizada deverá ser a mesma, defina uma chave para você e procure utilizar a mesma em todo o sistema.

Qualquer duvida... post ai.

Att


GOSTEI 0
Alecsandro Moura

Alecsandro Moura

18/09/2007

Vlw Pela atenção cara!
Mais uma Duvida, sou assinante da revista clubeDelphi e recebi o exemplar de nº 87 que tem o artigo sobre o UserControl Tentei fazer os Paços dscritos na revista mas não obtive sucesso Utilizo o delphi 7 mas o código foi gerado no 2006 vc tem por um acaso um link com esse componente para delphi 7 ou tem ele compativel com o D7 para me enviar por e-mail?

se tiver meu email é:
alecsandro.moura@ibest.com.br
Vlw :wink:


GOSTEI 0
Alecsandro Moura

Alecsandro Moura

18/09/2007

Brigadão Pela Atenção Cara!
Obrigado Pelo Componente que vc me enviou, mas foi o mesmo que eu baixei do site e não tinha funcionado, mas isso acontecia pois tinha algumas coisas que só tinham no D 2006 dai é só ir dando um Build e caso der um erro é só comentar as linhas que derem os erros que dai funfa Blz :D
é isso Vlw :wink:


GOSTEI 0
POSTAR