Fórum Ajuda num encriptador/descriptador de textos #217110

28/02/2004

0

Estou desenvolvendo um programa para encriptar e descriptar textos.
Pretendo melhorá-lo um pouco adicionando um Edit aonde será colocado
um número-chave escolhido pelos usuários, com um limite de no máximo
quatro dígitos. Adicionando este número-chave o programa uma segurança maior! Se alguém tentar descriptar um texto com um número-chave diferente do que foi usado para encriptá-lo, que não consiga fazê-lo, alertando-o com uma mensagem ou que apareçam caracteres completamente estranhos, que não tenham nada a ver com o texto original! Bem, repetindo a pergunta. Alguém sabe como faço para implementar este número-chave através de um Edit? Se alguém tiver a paciência para ajudar pode ver os fontes completo deste programa no meu site. [url]http://geocities.yahoo.com.br/gilson_gam[/url]


Ginosam

Ginosam

Responder

Posts

28/02/2004

::d::a::m::m::i::t::

baixa o itutilib...... eh uma dll q tem uma função q criptografa e outra q descriptografa......


Responder

Gostei + 0

28/02/2004

Marcelo

Tente as seguintes funções:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Cript( Texto : String ): String;
var
  Shift : Integer; //número de 02 à 225;
  pos   : Integer;
begin
   Shift := 12;  // 12 é um número qualquer para criptografar
   for pos := 1 to Length( Texto ) do
     Texto[pos] := Chr( ord( Texto[pos] ) + shift);
   Result := Texto;
end;
 
function DesCript( Texto : String ): String;
var
  Shift : Integer; //número de 02 à 225;
  pos   : Integer;
begin
   Shift := 12;  // tem que ser o mesmo para descriptografar
   for pos := 1 to Length( Texto ) do
     Texto[pos] := Chr( ord( Texto[pos] ) - shift);
   Result := Texto;
end;


Valeu?


Responder

Gostei + 0

28/02/2004

Edilcimar

este exemplo do marcelo é bem simples se quizer melhorá-lo faça um loop com uma variável qualquer e utilize o XOR que é melhor
variável :-´avaviavelquevoceqizercomotamanhoquevocequizer´;
temp :=´´;
for i := 0 to length(texto)-1 do
begin
j := i
if j > length(variavel) then
begin
j := trunc(i / length(variavel);
k := i - j * length(variavel);
end
temp := temp + chr(variavel xor texto[k]);
end;
eu criei isto agora se houver erro na conta desculpe pois não testei, mas o princípio básico é válido


Responder

Gostei + 0

29/02/2004

Ginosam

Pessoal agradeço pelas respostas de todos, mas acho que vocês não entenderam. Eu não quero uma função para encriptar e descriptar porque já estou usando a minha. Se vocês não viram o fonte aqui esta:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function EnDeCrypt(const Value : String) : String;
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

function TForm1.EnDeCrypt(const Value : String) : String;
var
CharIndex : integer;
begin
Result := Value;
for CharIndex := 1 to Length(Value) do
Result[CharIndex] := chr(not(ord(Value[CharIndex])));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Memo1.Text = ´´ then
begin
memo1.SetFocus;
ShowMessage(´Impossível, pois nenhum texto ainda foi criado!´);
end
else
begin
Button1.Enabled:=false;
Memo2.Text := EnDeCrypt(Memo1.Text);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Memo2.Text = ´´ then
ShowMessage(´Impossível, pois nenhum texto ainda foi encriptado!´)
else
begin
Button3.Enabled:=true;
button1.Enabled:=false;
Button2.Enabled:=false;
Memo3.Text := EnDeCrypt(Memo2.Text);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
memo1.Clear;
memo2.Clear;
memo3.Clear;
memo1.SetFocus;
Button1.Enabled:=true;
Button2.Enabled:=true;
Button3.Enabled:=false;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
memo1.SetFocus;
Button3.Enabled:=false;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Form2.ShowModal;
end;

end.

Se possível eu quero, como eu disse, adicionar um edit para colocar um número chave. Se alguém entendeu, mande um exemplo baseado no meu código! Valeu!
P.S. Ah Marcelo, tentei visitar o seu endereço mais não abriu!


Responder

Gostei + 0

29/02/2004

Edilcimar

lá em cima onde eu escrevi variavel := ´avaviavelquevoceqizercomotamanhoquevocequizer´ substitua por
variavel := Edit1.Text e tudo funciona


Responder

Gostei + 0

29/02/2004

Ginosam

Desculpe, Edilcimar, mas não estou entendendo. Devo adidicionar mais duas funções além da qual já estou usando? Você poderia explicar mais detalhadamente, por favor!
Valeu!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar