Faça sua buscar ...

sexta-feira, 23 de janeiro de 2015

Função para criptografar e descriptografar uma string


Function Crypt(Opcao : String; Dados : String): String;
var
  I : Integer;
  Key : Word;
  Res : String;
const
  C1    = 33598;
  C2    = 24219;
  Chave = 16854;
begin
  Key := Chave;
  for I := 1 to length(Dados) do
    begin
      Res := Res + Char(Byte(Dados[I]) xor (Key shr 8));
      if Opcao = 'CRYPT' then
        Key := (Byte(Res[I]) + Chave) * C1 + C2;
      if Opcao = 'DECRYPT' then
        Key := (Byte(Dados[I]) + Chave) * C1 + C2;
    end;
  Result := Res;
end;

{Para criptografar uma string:}
  Edit2.Text := Crypt('CRYPT',Edit3.Text);

{Para descriptografar uma string criptografada por esta função:}
  Edit1.Text := Crypt('DECRYPT',Edit2.Text);

5 comentários:

  1. Boa noite Charles. Parabens pela função.
    Gostaria de tirar uma duvida. Ao criptografar uma string e ao tentar salva-la no banco de dados em um campo VARCHAR, da erro, acredito ser pelo fato da string criptografada conter aspas, o que faz com o que o MySQL entenda termino da string e consequentemente o que vem na sequencia fica como sujeira ao final do INSERT.

    Alguma sugestão de que tipo de campo devo criar na base de dados para aceitar a string criptografada?

    Obrigado e abraços.

    ResponderExcluir
  2. qualquer palavra que comece com "ma" não funciona

    ResponderExcluir
  3. http://www.planetadelphi.com.br/dica/7583/-funcao-para-criptografar-e-descriptografar-uma-string-

    ResponderExcluir
  4. Bem o que eu estava pesquisando sobre criptografia md5... Muito obrigado!!!

    ResponderExcluir