Fórum Ajuda num encriptador/descriptador de textos #217110
28/02/2004
0
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
Curtir tópico
+ 0Posts
28/02/2004
::d::a::m::m::i::t::
Gostei + 0
28/02/2004
Marcelo
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?
Gostei + 0
28/02/2004
Edilcimar
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
Gostei + 0
29/02/2004
Ginosam
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!
Gostei + 0
29/02/2004
Edilcimar
variavel := Edit1.Text e tudo funciona
Gostei + 0
29/02/2004
Ginosam
Valeu!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)