Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Max.20

codigo de criptografia

Recommended Posts

Ola pessoal peguei este codigo para estudar mas nao estou entendendo uma parte.

 

è um programa de criptografia, toda vez q vou criptografar uma mensagem o programa pede para digitar um numero de 2 a 255. Cada numero é um tipo de cifragem diferente..gostaria de enteder a logica dessa troca de cifragem..

 

alguem poderia me explicar o q esta acontecendo nesta linha de código:

 

Obrigado desde ja..

 

texto := memo1.text;
shift := StrToInt(edit1.text);
for pos := 1 to length(texto) do
texto[pos] := chr(ord(texto[pos]) + shift);
memo2.text := texto;
end;
end;

 

Logo abaixo o codigo completo:

 

procedure TForm1.Button1Click(Sender: TObject);
var
texto : string;
pos : integer;
shift :integer;
begin

if edit1.text = '' then
showmessage('Please Insert A Shift Number1')
else if StrToInt(edit1.text) > 255 then
ShowMessage('Number Must Be Less Than 256')
Else if StrToInt(Edit1.text) < 2 then
ShowMessage('Number Must Be Greater Than 1')
else
begin
texto := memo1.text;
shift := StrToInt(edit1.text);
for pos := 1 to length(texto) do
texto[pos] := chr(ord(texto[pos]) + shift);
memo2.text := texto;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
texto : string;
posicao : integer;
shift : integer;
begin
if edit1.text = '' then
showmessage('Please Insert A Shift Number1')
else if StrToInt(edit1.text) > 255 then
ShowMessage('Number Must Be Less Than 256')
Else if StrToInt(Edit1.text) < 2 then
ShowMessage('Number Must Be Greater Than 1')
else
begin
texto := memo2.text;
shift := StrToInt(edit1.text);
for posicao := 1 to length(texto) do
texto[posicao] := chr(ord(texto[posicao]) - shift);
memo1.text := texto;
end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia os comentários que eu coloquei no source...

 

texto := memo1.text; //Copiando o conteudo do memo para uma variável (Facilita a manipulação)
shift := StrToInt(edit1.text); //Copia o valor (Aquele 1 a 255) para uma variável do tipo integer
for pos := 1 to length(texto) do  //Início do loop
texto[pos] := chr(ord(texto[pos]) + shift); //Percore cada caractere do texto e cifra o mesmo, detalhes abaixo
memo2.text := texto; //Devolve o texto cifrado para o memo...
end;
end;

É o seguinte, criptografia é uma tecnica que visa esconder (disfarçar) um conteúdo, informação, etc., para que pessoas indevidas não consigam saber o que está la.

Você pode criar seu próprio algorítmo de criptografia ou usar os algorítmos prontos muito conhecidos. No caso, o autor do source tentou criar o seu algorítmo.

Qual é a lógia implantada? no caso, ele pega o código de cada caractere (Cada letra ou simbolo textual tem um código de identificação, pesquise sobre tabela ASCII) e somou com o valor da variavel shift. Assim, só seria possível saber o que estava escrito antes sabendo o valor de shift e fazendo a operação inversa.

 

Este é um algorítmo de exemplo mas que não deveria ser usado em um contexto profissional pois é uma criptografia muito fácil de quebrar, procure por outros algorítmos, aqui no Forum iMasters (laboratório de Scripts da seção delphi) tem alguns algorítmos bons para usar no dia-a-dia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este tipo de criptografia, soma os bytes da string a ser criptografada com o valor que você informou no edit1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.