Como cripitografar o texto de um Edit antes de gravar .....

Delphi

26/03/2003

Favor preciso cripitografar o que foi digitado em uma Edit antes de gravar na tabela. Obs uso Paradox.

Por favor me ajudem sou iniciante, sabem como é..

Desde já, obrigado.

Arlênio


Anonymous

Anonymous

Curtidas 0

Respostas

Carnette

Carnette

26/03/2003

[quote:c4ad2b3d6d=´Arlênio´]Favor preciso cripitografar o que foi digitado em uma Edit antes de gravar na tabela. Obs uso Paradox.

Por favor me ajudem sou iniciante, sabem como é..

Desde já, obrigado.

Arlênio[/quote:c4ad2b3d6d]

Aqui vai umas dicas tiradas do 750 Dicas e Truques em Delphi do LloydSoft

Encriptar/Desencriptar strings
Esta função permite encriptar e desencriptar strings. O código de encriptação é bastante simples, por isso pode ser melhorado, sendo este apenas um exemplo de como fazê-lo em Delphi.

function EnDecryptString(StrValue : String; Chave: Word) : String;
var
I: Integer;
OutValue : String;
begin
OutValue := ´´;
for I := 1 to Length(StrValue) do
OutValue := OutValue + char(Not(ord(StrValue[I])-Chave));
Result := OutValue;
end;
Exemplo de utilização:

Iniciar um novo projecto, copiar a função para uma unit, colocar três TEdit (Edit1, Edit2, Edit3) e dois TButton (Button1 e Button2) na form.

No evento OnClick do Button1 deve chamar a função, em que os parâmetros de entrada são o texto do Edit1 e uma chave de encriptação do tipo word.

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.text:=EnDecryptString(Edit1.text, 236);
end;
No evento OnClick do Button2 deve chamar a função EnDecryptString, em que os parâmetros de entrada são o texto encriptado do Edit2 a chave de encriptação usada para encriptar a string.

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit3.text:=EnDecryptString(Edit2.text, 236);
end;


2ª Dica
Função para criptografar uma String
A função Criptografia pode ser usada para criptografar a senha acesso ao sistema. Ela é usada nos dois sentidos, para criptografar e descriptografar, desde que seja usada a mesma chave nas duas operações. ´mStr´ é a String que vai ser criptografada e ´mChave´ é a String que sera usada como base para fazer a criptografia.

function Criptografia(mStr, mChave: string): string;
var
i, TamanhoString, pos, PosLetra, TamanhoChave: Integer;
begin
Result := mStr;
TamanhoString := Length(mStr);
TamanhoChave := Length(mChave);
for i := 1 to TamanhoString do
begin
pos := (i mod TamanhoChave);
if pos = 0 then
pos := TamanhoChave;
posLetra := ord(Result[i]) xor ord(mChave[pos]);
if posLetra = 0 then
posLetra := ord(Result[i]);
Result[i] := chr(posLetra);
end;
end;
3ª Dica
Encripitando uma string
program Crypt;
uses WinCRT;
const
C1 = 52845;
C2 = 22719;
function Encrypt(const S: string; Key: Word): string;
var
I: byte;
begin
Result[0] := S[0];
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
end;
end;
function Decrypt(const S: string; Key: Word): string;
var
I: byte;
begin
Result[0] := S[0];
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(S[I]) + Key) * C1 + C2;
end;
end;
var
S: string;
begin
Write(´>´);
ReadLn(S);
S := Encrypt(S, 12345);
WriteLn(S);
S := Decrypt(S, 12345);
WriteLn(S);
end.

Encripitando uma string (2)
function Encrypt( Senha:String ): String;
Const
Chave : String = ´Jesus´;
Var
x,y : Integer;
NovaSenha : String;
begin
for x := 1 to Length( Chave ) do
begin
NovaSenha := ´´;
for y := 1 to Length( Senha ) do
NovaSenha := NovaSenha + chr( (Ord(Chave[x]) xor Ord(Senha[y])));
Senha := NovaSenha;
end;
result := Senha;
end;


GOSTEI 0
Odirlei

Odirlei

26/03/2003

2ª Dica
Função para criptografar uma String
A função Criptografia pode ser usada para criptografar a senha acesso ao sistema. Ela é usada nos dois sentidos, para criptografar e descriptografar, desde que seja usada a mesma chave nas duas operações. ´mStr´ é a String que vai ser criptografada e ´mChave´ é a String que sera usada como base para fazer a criptografia.

function Criptografia(mStr, mChave: string): string;
var
i, TamanhoString, pos, PosLetra, TamanhoChave: Integer;
begin
Result := mStr;
TamanhoString := Length(mStr);
TamanhoChave := Length(mChave);
for i := 1 to TamanhoString do
begin
pos := (i mod TamanhoChave);
if pos = 0 then
pos := TamanhoChave;
posLetra := ord(Result[i]) xor ord(mChave[pos]);
if posLetra = 0 then
posLetra := ord(Result[i]);
Result[i] := chr(posLetra);
end;
end;

Olá Pessoal,

estou usando em um programa meu o exemplo citado acima. O meu programa funciona assim:

O texto é armazenado em campo Memo, depois ele é encriptado e gravado em um arquivo texto. Depois este arquivo é lido por outro programa e na hora de desencriptar o texto fica assim:


[Delphi 6 - loiras [Running]

ZP

Algumas partes são desencriptadas corretamente e outras não. Estou usando a mesma função nos dois programas com a mesma chave.


GOSTEI 0
POSTAR